(error-if-null parent-GdkWindow "Could not get parent:" widget)
(C-call "gdk_window_new" main-GdkWindow parent-GdkWindow attr
- (bit-or (if x (C-enum "GDK_WA_X") 0)
- (if y (C-enum "GDK_WA_Y") 0)
- ;;(C-enum "GDK_WA_VISUAL")
- (C-enum "GDK_WA_COLORMAP")))
+ (bitwise-ior (if x (C-enum "GDK_WA_X") 0)
+ (if y (C-enum "GDK_WA_Y") 0)
+ ;;(C-enum "GDK_WA_VISUAL")
+ (C-enum "GDK_WA_COLORMAP")))
(error-if-null main-GdkWindow "Could not create main window:" widget)
(C-call "gtk_widget_set_window" GtkWidget main-GdkWindow)
(C-call "gdk_window_set_user_data" main-GdkWindow GtkWidget)
(name (C-enum "GDK_META_MASK") 'meta)
(name (C-enum "GDK_RELEASE_MASK") 'release)
(named-lambda (->modifiers num)
- (map (lambda (i) (vector-ref names i)) (bit-mask-indices num)))))
+ (map! (lambda (i) (vector-ref names i)) (bit-mask-indices num)))))
(define (set-fix-layout-button-handler! layout type handler)
(guarantee-fix-layout layout 'set-fix-layout-button-handler!)
(let* ((uri* (->uri* uri 'gdirectory-read))
(gfile (make-gfile (uri->string uri*)))
(names
- (map (lambda (ginfo)
- (let ((name (gfile-info-get-attribute-value
- ginfo "standard::name")))
- (gobject-unref! ginfo)
- name))
- (gfile-children gfile "standard::name"))))
+ (map! (lambda (ginfo)
+ (let ((name (gfile-info-get-attribute-value
+ ginfo "standard::name")))
+ (gobject-unref! ginfo)
+ name))
+ (gfile-children gfile "standard::name"))))
(gobject-unref! gfile)
names))
setup-output)))
(define (->gfile-create-flags flags)
- (reduce-left fix:or 0 (map ->gfile-create-flag flags)))
+ (reduce-left bitwise-ior 0 (map! ->gfile-create-flag flags)))
(define (->gfile-create-flag flag)
(case flag
(define (gfile-info-list-attributes ginfo namespace)
(guarantee-string namespace 'gfile-info-list-attributes)
- (map string->symbol
- (let ((alien (make-cstringv
- (lambda (copy)
- (C-call "g_file_info_list_attributes" copy
- (gobject-alien ginfo) namespace)))))
- (let ((strings (peek-cstringv alien)))
- (free-cstringv alien)
- strings))))
+ (map! string->symbol
+ (let ((alien (make-cstringv
+ (lambda (copy)
+ (C-call "g_file_info_list_attributes" copy
+ (gobject-alien ginfo) namespace)))))
+ (let ((strings (peek-cstringv alien)))
+ (free-cstringv alien)
+ strings))))
(define (gfile-info-remove-attribute ginfo name)
(guarantee-string name 'gfile-info-remove-attribute)
(C->= attr "GdkWindowAttr height" (fix-rect-height b)))
(C->= attr "GdkWindowAttr wclass" (C-enum "GDK_INPUT_OUTPUT"))
(C->= attr "GdkWindowAttr event_mask"
- (bit-or (C-call "gtk_widget_get_events" alien)
- (C-enum "GDK_EXPOSURE_MASK")))
+ (bitwise-ior (C-call "gtk_widget_get_events" alien)
+ (C-enum "GDK_EXPOSURE_MASK")))
(C-call "gtk_widget_get_parent_window" parent-GdkWindow alien)
(error-if-null parent-GdkWindow "Could not get parent:" widget)
(C-call "gdk_window_new" main-GdkWindow parent-GdkWindow attr
- (bit-or (C-enum "GDK_WA_X") (C-enum "GDK_WA_Y")))
+ (bitwise-ior (C-enum "GDK_WA_X") (C-enum "GDK_WA_Y")))
(error-if-null main-GdkWindow "Could not create main window:" widget)
(C->= alien "GtkWidget window" main-GdkWindow)
(C-call "gdk_window_set_user_data" main-GdkWindow alien)
(C->= attr "GdkWindowAttr event_mask" (C-enum "GDK_ALL_EVENTS_MASK"))
(C->= attr "GdkWindowAttr cursor" GdkCursor)
(C-call "gdk_window_new" event-GdkWindow main-GdkWindow attr
- (bit-or (C-enum "GDK_WA_X") (C-enum "GDK_WA_Y")
- (C-enum "GDK_WA_CURSOR")))
+ (bitwise-ior (C-enum "GDK_WA_X") (C-enum "GDK_WA_Y")
+ (C-enum "GDK_WA_CURSOR")))
(error-if-null event-GdkWindow "Could not create event window:" widget)
(C-call "gdk_window_set_user_data" event-GdkWindow alien)
(C-call "gdk_window_show" event-GdkWindow)
(define-integrable-operator (fix:abs n)
(if (fix:negative? n) (fix:negate n) n))
-(define (bit-mask . ints)
- ;; For bit field masks. INTS is assumed to be a list of powers
- ;; of two, no repeats.
- (fold-left int:+ 0 ints))
-
(define-integrable (bit-mask-indices num)
;; The indices of the bits set in NUM.
(let ((str (unsigned-integer->bit-string 32 num)))
'())))))
(define-integrable (bit? int mask)
- ;; This seems... inefficient.
- (not (int:zero? (bit-and int mask))))
-
-(define (bit-and . numbers)
- (bit-string->unsigned-integer
- (fold-left
- (lambda (bits num)
- (let ((bits2 (unsigned-integer->bit-string 32 num)))
- (bit-string-and! bits bits2)
- bits))
- (signed-integer->bit-string 32 -1)
- numbers)))
-
-(define (bit-or . numbers)
- (bit-string->unsigned-integer
- (fold-left
- (lambda (bits num)
- (let ((bits2 (unsigned-integer->bit-string 32 num)))
- (bit-string-or! bits bits2)
- bits))
- (unsigned-integer->bit-string 32 0)
- numbers)))
\ No newline at end of file
+ (not (int:zero? (bitwise-and int mask))))
\ No newline at end of file