void ddisplay_update_scrollbars(DDisplay *ddisp) { Rectangle *extents = &ddisp->diagram->data->extents; Rectangle *visible = &ddisp->visible; GtkAdjustment *hsbdata, *vsbdata; hsbdata = ddisp->hsbdata; /* Horizontal: */ gtk_adjustment_set_lower (hsbdata, MIN(extents->left, visible->left)); gtk_adjustment_set_upper (hsbdata, MAX(extents->right, visible->right)); gtk_adjustment_set_page_size (hsbdata, visible->right - visible->left - 0.0001); /* remove some to fix strange behaviour in gtk_range_adjustment_changed */ gtk_adjustment_set_page_increment (hsbdata, (visible->right - visible->left) / 2.0); gtk_adjustment_set_step_increment (hsbdata, (visible->right - visible->left) / 10.0); gtk_adjustment_set_value (hsbdata, visible->left); g_signal_emit_by_name (G_OBJECT (ddisp->hsbdata), "changed"); /* Vertical: */ vsbdata = ddisp->vsbdata; gtk_adjustment_set_lower (vsbdata, MIN(extents->top, visible->top)); gtk_adjustment_set_upper (vsbdata, MAX(extents->bottom, visible->bottom)); gtk_adjustment_set_page_size (vsbdata, visible->bottom - visible->top - 0.00001); /* remove some to fix strange behaviour in gtk_range_adjustment_changed */ gtk_adjustment_set_page_increment (vsbdata, (visible->bottom - visible->top) / 2.0); gtk_adjustment_set_step_increment (vsbdata, (visible->bottom - visible->top) / 10.0); gtk_adjustment_set_value (vsbdata, visible->top); g_signal_emit_by_name (G_OBJECT (ddisp->vsbdata), "changed"); }
JNIEXPORT void JNICALL Java_org_gnome_gtk_GtkAdjustment_gtk_1adjustment_1set_1step_1increment ( JNIEnv* env, jclass cls, jlong _self, jdouble _value ) { GtkAdjustment* self; gdouble value; // convert parameter self self = (GtkAdjustment*) _self; // convert parameter value value = (gdouble) _value; // call function gtk_adjustment_set_step_increment(self, value); // cleanup parameter self // cleanup parameter value }
static void dma_sparse_view_update_adjustement (DmaSparseView *view) { PangoLayout *layout; GdkRectangle text_area; int height; gtk_text_view_get_visible_rect(GTK_TEXT_VIEW (view), &text_area); layout = gtk_widget_create_pango_layout (GTK_WIDGET(view), "0123456789ABCDEFGHIJKLMNOPQRSTUVWWYZ,"); pango_layout_get_pixel_size(layout, NULL, &height); g_object_unref (G_OBJECT (layout)); view->priv->line_by_page = text_area.height / height; view->priv->char_by_line = 8; if (view->priv->vadjustment != NULL) { GtkAdjustment *vadj = view->priv->vadjustment; gdouble step_increment, page_size; step_increment = view->priv->char_by_line; page_size = (view->priv->line_by_page - 1) * step_increment; gtk_adjustment_set_step_increment (vadj, step_increment); gtk_adjustment_set_page_size (vadj, page_size); gtk_adjustment_set_page_increment (vadj, page_size * 0.9); gtk_adjustment_changed (vadj); } }
Scrollbar::Scrollbar(bool horizontal) { XOJ_INIT_TYPE(Scrollbar); #ifdef ENABLE_OS if(horizontal) { this->scrollbar = os_scrollbar_new(GTK_ORIENTATION_HORIZONTAL, NULL); } else { this->scrollbar = os_scrollbar_new(GTK_ORIENTATION_VERTICAL, NULL); } #else if (horizontal) { this->scrollbar = gtk_hscrollbar_new(NULL); } else { this->scrollbar = gtk_vscrollbar_new(NULL); } #endif g_object_ref(this->scrollbar); this->listener = NULL; this->adj = gtk_range_get_adjustment(GTK_RANGE(this->scrollbar)); gtk_adjustment_set_step_increment(this->adj, 20); this->value = 50; this->setMax(100); this->setValue(this->value); g_signal_connect(this->adj, "value-changed", G_CALLBACK(scrolled), this); }
void fe_get_int (char *msg, int def, void *callback, void *userdata) { GtkWidget *dialog; GtkWidget *spin; GtkWidget *hbox; GtkWidget *label; GtkAdjustment *adj; dialog = gtk_dialog_new_with_buttons (msg, NULL, 0, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL); gtk_box_set_homogeneous (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), TRUE); gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); g_object_set_data (G_OBJECT (dialog), "cb", callback); g_object_set_data (G_OBJECT (dialog), "ud", userdata); spin = gtk_spin_button_new (NULL, 1, 0); adj = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (spin)); gtk_adjustment_set_lower (adj, 0); gtk_adjustment_set_upper (adj, 1024); gtk_adjustment_set_step_increment (adj, 1); gtk_adjustment_changed (adj); gtk_spin_button_set_value (GTK_SPIN_BUTTON (spin), def); gtk_box_pack_end (GTK_BOX (hbox), spin, 0, 0, 0); label = gtk_label_new (msg); gtk_box_pack_end (GTK_BOX (hbox), label, 0, 0, 0); g_signal_connect (G_OBJECT (dialog), "response", G_CALLBACK (get_number_response), spin); gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), hbox); gtk_widget_show_all (dialog); }
/* Configure the page and step increment of the volume slider, * according to the current preferences. */ static void configure_vol_increment(GtkAdjustment *vol_scale_adj) { gdouble scroll_step; gdouble fine_scroll_step; scroll_step = prefs_get_double("ScrollStep", 5); fine_scroll_step = prefs_get_double("FineScrollStep", 1); gtk_adjustment_set_page_increment(vol_scale_adj, scroll_step); gtk_adjustment_set_step_increment(vol_scale_adj, fine_scroll_step); }
static void volume_widget_init (VolumeWidget *self) { //g_debug("VolumeWidget::volume_widget_init"); VolumeWidgetPrivate * priv = VOLUME_WIDGET_GET_PRIVATE(self); priv->ido_volume_slider = ido_scale_menu_item_new_with_range ("VOLUME", IDO_RANGE_STYLE_DEFAULT, 0, 0, 100, 1); g_object_ref (priv->ido_volume_slider); ido_scale_menu_item_set_primary_label (IDO_SCALE_MENU_ITEM(priv->ido_volume_slider), "VOLUME"); ido_scale_menu_item_set_style (IDO_SCALE_MENU_ITEM (priv->ido_volume_slider), IDO_SCALE_MENU_ITEM_STYLE_IMAGE); g_object_set(priv->ido_volume_slider, "reverse-scroll-events", TRUE, NULL); g_signal_connect (priv->ido_volume_slider, "notify::parent", G_CALLBACK (volume_widget_parent_changed), NULL); GtkWidget* volume_widget = ido_scale_menu_item_get_scale((IdoScaleMenuItem*)priv->ido_volume_slider); g_signal_connect(volume_widget, "change-value", G_CALLBACK(volume_widget_change_value_cb), self); g_signal_connect(volume_widget, "value-changed", G_CALLBACK(volume_widget_value_changed_cb), self); g_signal_connect(priv->ido_volume_slider, "slider-grabbed", G_CALLBACK(volume_widget_slider_grabbed), self); g_signal_connect(priv->ido_volume_slider, "slider-released", G_CALLBACK(volume_widget_slider_released), self); GtkWidget* primary_image = ido_scale_menu_item_get_primary_image((IdoScaleMenuItem*)priv->ido_volume_slider); GIcon * primary_gicon = g_themed_icon_new_with_default_fallbacks("audio-volume-low-zero-panel"); gtk_image_set_from_gicon(GTK_IMAGE(primary_image), primary_gicon, GTK_ICON_SIZE_MENU); g_object_unref(primary_gicon); GtkWidget* secondary_image = ido_scale_menu_item_get_secondary_image((IdoScaleMenuItem*)priv->ido_volume_slider); GIcon * secondary_gicon = g_themed_icon_new_with_default_fallbacks("audio-volume-high-panel"); gtk_image_set_from_gicon(GTK_IMAGE(secondary_image), secondary_gicon, GTK_ICON_SIZE_MENU); g_object_unref(secondary_gicon); GtkAdjustment *adj = gtk_range_get_adjustment (GTK_RANGE (volume_widget)); gtk_adjustment_set_step_increment(adj, 4); }
static void cb_show_details (GtkWidget *button, AppearanceData *data) { if (!data->font_details) { GtkAdjustment *adjustment; GtkWidget *widget; EnumGroup *group; data->font_details = appearance_capplet_get_widget (data, "render_details"); gtk_window_set_transient_for (GTK_WINDOW (data->font_details), GTK_WINDOW (appearance_capplet_get_widget (data, "appearance_window"))); widget = appearance_capplet_get_widget (data, "dpi_spinner"); /* pick a sensible maximum dpi */ adjustment = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (widget)); gtk_adjustment_set_lower (adjustment, DPI_LOW_REASONABLE_VALUE); gtk_adjustment_set_upper (adjustment, DPI_HIGH_REASONABLE_VALUE); gtk_adjustment_set_step_increment (adjustment, 1); dpi_load (data->font_settings, GTK_SPIN_BUTTON (widget)); g_signal_connect (widget, "value_changed", G_CALLBACK (dpi_value_changed), data->font_settings); g_signal_connect (data->font_settings, "changed::" FONT_DPI_KEY, G_CALLBACK (dpi_changed), widget); setup_font_sample (appearance_capplet_get_widget (data, "antialias_none_sample"), ANTIALIAS_NONE, HINT_FULL); setup_font_sample (appearance_capplet_get_widget (data, "antialias_grayscale_sample"), ANTIALIAS_GRAYSCALE, HINT_FULL); setup_font_sample (appearance_capplet_get_widget (data, "antialias_subpixel_sample"), ANTIALIAS_RGBA, HINT_FULL); group = enum_group_create ( data->font_settings, FONT_ANTIALIASING_KEY, appearance_capplet_get_widget (data, "antialias_none_radio"), ANTIALIAS_NONE, appearance_capplet_get_widget (data, "antialias_grayscale_radio"), ANTIALIAS_GRAYSCALE, appearance_capplet_get_widget (data, "antialias_subpixel_radio"), ANTIALIAS_RGBA, NULL); data->font_groups = g_slist_prepend (data->font_groups, group); setup_font_sample (appearance_capplet_get_widget (data, "hint_none_sample"), ANTIALIAS_GRAYSCALE, HINT_NONE); setup_font_sample (appearance_capplet_get_widget (data, "hint_slight_sample"), ANTIALIAS_GRAYSCALE, HINT_SLIGHT); setup_font_sample (appearance_capplet_get_widget (data, "hint_medium_sample"), ANTIALIAS_GRAYSCALE, HINT_MEDIUM); setup_font_sample (appearance_capplet_get_widget (data, "hint_full_sample"), ANTIALIAS_GRAYSCALE, HINT_FULL); group = enum_group_create (data->font_settings, FONT_HINTING_KEY, appearance_capplet_get_widget (data, "hint_none_radio"), HINT_NONE, appearance_capplet_get_widget (data, "hint_slight_radio"), HINT_SLIGHT, appearance_capplet_get_widget (data, "hint_medium_radio"), HINT_MEDIUM, appearance_capplet_get_widget (data, "hint_full_radio"), HINT_FULL, NULL); data->font_groups = g_slist_prepend (data->font_groups, group); gtk_image_set_from_file (GTK_IMAGE (appearance_capplet_get_widget (data, "subpixel_rgb_image")), MATECC_PIXMAP_DIR "/subpixel-rgb.png"); gtk_image_set_from_file (GTK_IMAGE (appearance_capplet_get_widget (data, "subpixel_bgr_image")), MATECC_PIXMAP_DIR "/subpixel-bgr.png"); gtk_image_set_from_file (GTK_IMAGE (appearance_capplet_get_widget (data, "subpixel_vrgb_image")), MATECC_PIXMAP_DIR "/subpixel-vrgb.png"); gtk_image_set_from_file (GTK_IMAGE (appearance_capplet_get_widget (data, "subpixel_vbgr_image")), MATECC_PIXMAP_DIR "/subpixel-vbgr.png"); group = enum_group_create (data->font_settings, FONT_RGBA_ORDER_KEY, appearance_capplet_get_widget (data, "subpixel_rgb_radio"), RGBA_RGB, appearance_capplet_get_widget (data, "subpixel_bgr_radio"), RGBA_BGR, appearance_capplet_get_widget (data, "subpixel_vrgb_radio"), RGBA_VRGB, appearance_capplet_get_widget (data, "subpixel_vbgr_radio"), RGBA_VBGR, NULL); data->font_groups = g_slist_prepend (data->font_groups, group); g_signal_connect (G_OBJECT (data->font_details), "response", G_CALLBACK (cb_details_response), NULL); g_signal_connect (G_OBJECT (data->font_details), "delete_event", G_CALLBACK (gtk_true), NULL); } gtk_window_present (GTK_WINDOW (data->font_details)); }
static void create_layout (GtkWidget *vbox) { GtkAdjustment *hadjustment, *vadjustment; GtkLayout *layout; GtkWidget *layout_widget; GtkWidget *scrolledwindow; GtkWidget *button; gchar buf[16]; gint i, j; scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_SHADOW_IN); gtk_scrolled_window_set_placement (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_CORNER_TOP_RIGHT); gtk_box_pack_start (GTK_BOX (vbox), scrolledwindow, TRUE, TRUE, 0); layout_widget = gtk_layout_new (NULL, NULL); layout = GTK_LAYOUT (layout_widget); gtk_container_add (GTK_CONTAINER (scrolledwindow), layout_widget); /* We set step sizes here since GtkLayout does not set * them itself. */ hadjustment = gtk_scrollable_get_hadjustment (GTK_SCROLLABLE (layout)); vadjustment = gtk_scrollable_get_vadjustment (GTK_SCROLLABLE (layout)); gtk_adjustment_set_step_increment (hadjustment, 10.0); gtk_adjustment_set_step_increment (vadjustment, 10.0); gtk_scrollable_set_hadjustment (GTK_SCROLLABLE (layout), hadjustment); gtk_scrollable_set_vadjustment (GTK_SCROLLABLE (layout), vadjustment); gtk_widget_set_events (layout_widget, GDK_EXPOSURE_MASK); g_signal_connect (layout, "draw", G_CALLBACK (layout_draw_handler), NULL); gtk_layout_set_size (layout, 1600, 128000); for (i = 0 ; i < 16 ; i++) for (j = 0 ; j < 16 ; j++) { g_snprintf (buf, sizeof (buf), "Button %d, %d", i, j); if ((i + j) % 2) button = gtk_button_new_with_label (buf); else button = gtk_label_new (buf); gtk_layout_put (layout, button, j * 100, i * 100); } for (i = 16; i < 1280; i++) { g_snprintf (buf, sizeof (buf), "Button %d, %d", i, 0); if (i % 2) button = gtk_button_new_with_label (buf); else button = gtk_label_new (buf); gtk_layout_put (layout, button, 0, i * 100); } layout_timeout = g_timeout_add (1000, scroll_layout, layout); }
static void dma_data_view_size_allocate (GtkWidget *widget, GtkAllocation *allocation) { DmaDataView *view = DMA_DATA_VIEW (widget); GtkStyle *style; GtkAllocation child_allocation; GtkRequisition range_requisition; GtkRequisition address_requisition; GtkRequisition data_requisition; GtkRequisition ascii_requisition; gint width; gint height; gint bytes_by_line; gint step; guint border_width; gboolean need_fill = FALSE; gtk_widget_set_allocation (widget, allocation); gtk_widget_get_child_requisition (view->range, &range_requisition); border_width = gtk_container_get_border_width (GTK_CONTAINER (view)); style = gtk_widget_get_style (widget); dma_data_view_address_size_request (view, &address_requisition); dma_data_view_data_size_request (view, &data_requisition); dma_data_view_ascii_size_request (view, &ascii_requisition); /* Compute number of byte per line */ width = allocation->width - 2 * border_width - (view->shadow_type == GTK_SHADOW_NONE ? 0 : 2 * style->xthickness) - ADDRESS_BORDER - ASCII_BORDER - SCROLLBAR_SPACING - range_requisition.width - address_requisition.width - data_requisition.width * view->char_by_byte - ascii_requisition.width; step = (ascii_requisition.width + data_requisition.width * (view->char_by_byte + 1)); for (bytes_by_line = 1; width >= step * bytes_by_line; bytes_by_line *= 2) { width -= step * bytes_by_line; } if (bytes_by_line != view->bytes_by_line) { need_fill = TRUE; view->bytes_by_line = bytes_by_line; } /* Compute number of line by page */ height = allocation->height - 2 * border_width - (view->shadow_type == GTK_SHADOW_NONE ? 0 : 2 * style->ythickness); if (view->line_by_page != (height / address_requisition.height)) { need_fill = TRUE; view->line_by_page = (height / address_requisition.height); } child_allocation.y = allocation->y + border_width; child_allocation.height = MAX (1, (gint) allocation->height - (gint) border_width * 2); /* Scroll bar */ child_allocation.x = allocation->x + allocation->width - border_width - range_requisition.width; child_allocation.width = range_requisition.width; gtk_widget_size_allocate (view->range, &child_allocation); child_allocation.x = allocation->x + border_width; /* Frame */ if (view->shadow_type != GTK_SHADOW_NONE) { GtkStyle *style = gtk_widget_get_style (widget); view->frame.x = allocation->x + border_width; view->frame.y = allocation->y + border_width; view->frame.width = allocation->width - range_requisition.width - SCROLLBAR_SPACING - 2 * border_width; view->frame.height = allocation->height - 2 * border_width; child_allocation.x += style->xthickness; child_allocation.y += style->ythickness; child_allocation.height -= 2 * style->ythickness; } /* Address */ child_allocation.width = address_requisition.width; gtk_widget_size_allocate (view->address, &child_allocation); child_allocation.x += child_allocation.width; child_allocation.x += ADDRESS_BORDER; /* Data */ child_allocation.width = (view->bytes_by_line * (view->char_by_byte + 1) - 1) * data_requisition.width; gtk_widget_size_allocate (view->data, &child_allocation); child_allocation.x += child_allocation.width; child_allocation.x += ASCII_BORDER; /* Ascii */ child_allocation.width = view->bytes_by_line * ascii_requisition.width; gtk_widget_size_allocate (view->ascii, &child_allocation); child_allocation.x += child_allocation.width; if (need_fill) { gdouble page_increment, page_size, upper; page_increment = view->bytes_by_line * (view->line_by_page - 1); upper = gtk_adjustment_get_upper (view->buffer_range); page_size = (gulong) upper % view->bytes_by_line + page_increment; gtk_adjustment_set_step_increment (view->buffer_range, view->bytes_by_line); gtk_adjustment_set_page_increment (view->buffer_range, page_increment); gtk_adjustment_set_page_size (view->buffer_range, page_size); if (view->start + page_size > upper) { view->start = upper - page_size + view->bytes_by_line - 1; view->start -= view->start % view->bytes_by_line; } dma_data_view_refresh (view); } }