void aurora_get_parent_bg (const GtkWidget *widget, AuroraRGB *color) { GtkStateType state_type; const GtkWidget *parent; GdkColor *gcolor; gboolean stop; GtkShadowType shadow = GTK_SHADOW_NONE; if (widget == NULL) return; parent = widget->parent; stop = FALSE; while (parent && !stop) { stop = FALSE; stop |= !GTK_WIDGET_NO_WINDOW (parent); stop |= GTK_IS_NOTEBOOK (parent) && gtk_notebook_get_show_tabs (GTK_NOTEBOOK (parent)) && gtk_notebook_get_show_border (GTK_NOTEBOOK (parent)); if (GTK_IS_FRAME(parent)) { shadow = gtk_frame_get_shadow_type(GTK_FRAME(parent)); stop |= (shadow != GTK_SHADOW_NONE); } else if (GTK_IS_TOOLBAR (parent)) { gtk_widget_style_get (GTK_WIDGET (parent), "shadow-type", &shadow, NULL); stop |= (shadow != GTK_SHADOW_NONE); } if (!stop) parent = parent->parent; } if (parent == NULL) return; state_type = GTK_WIDGET_STATE (parent); gcolor = &parent->style->bg[state_type]; aurora_gdk_color_to_rgb (gcolor, &color->r, &color->g, &color->b); if (GTK_IS_FRAME (parent) && shadow != GTK_SHADOW_NONE) { if (shadow == (GTK_SHADOW_IN || GTK_SHADOW_ETCHED_IN)) aurora_shade (color, color, 0.97); else aurora_shade (color, color, 1.04); } }
static gboolean is_combo_window (GtkWidget *widget) { GtkWidget *child; AtkObject *obj; child = gtk_bin_get_child (GTK_BIN (widget)); if (!GTK_IS_EVENT_BOX (child)) return FALSE; child = gtk_bin_get_child (GTK_BIN (child)); if (!GTK_IS_FRAME (child)) return FALSE; child = gtk_bin_get_child (GTK_BIN (child)); if (!GTK_IS_SCROLLED_WINDOW (child)) return FALSE; obj = gtk_widget_get_accessible (child); obj = atk_object_get_parent (obj); return FALSE; }
static GtkBox * gtk_scale_button_get_box(GtkScaleButton *button) { GtkWidget *box = NULL; if (auto dock = gtk_scale_button_get_popup(button)) { // the dock is a popover which contains the box box = gtk_bin_get_child(GTK_BIN(dock)); if (box) { if (GTK_IS_FRAME(box)) { // support older versions of gtk; the box used to be in a frame box = gtk_bin_get_child(GTK_BIN(box)); } } } return GTK_BOX(box); }
void gimp_enum_radio_frame_add (GtkFrame *frame, GtkWidget *widget, gint enum_value, gboolean below) { GtkWidget *box; g_return_if_fail (GTK_IS_FRAME (frame)); g_return_if_fail (GTK_IS_WIDGET (widget)); box = gtk_bin_get_child (GTK_BIN (frame)); g_return_if_fail (GTK_IS_BOX (box)); gimp_enum_radio_box_add (GTK_BOX (box), widget, enum_value, below); }
static int gtkButtonSetBgColorAttrib(Ihandle* ih, const char* value) { if (ih->data->type == IUP_BUTTON_TEXT) { GtkWidget* frame = gtk_button_get_image(GTK_BUTTON(ih->handle)); if (frame && GTK_IS_FRAME(frame)) { unsigned char r, g, b; if (!iupStrToRGB(value, &r, &g, &b)) return 0; iupgtkSetBgColor(gtk_bin_get_child(GTK_BIN(frame)), r, g, b); return 1; } } return iupdrvBaseSetBgColorAttrib(ih, value); }
//____________________________________________________________________________________________ gboolean Animations::realizationHook( GSignalInvocationHint*, guint, const GValue* params, gpointer data ) { // get widget from params GtkWidget* widget( GTK_WIDGET( g_value_get_object( params ) ) ); // check type if( !GTK_IS_WIDGET( widget ) ) return FALSE; if( GTK_IS_NOTEBOOK( widget ) ) { gtk_notebook_set_show_border( GTK_NOTEBOOK(widget), FALSE ); } #if ENABLE_GROUPBOX_HACK if( GTK_IS_LABEL( widget ) && GTK_IS_FRAME( gtk_widget_get_parent( widget ) ) ) { GtkFrame *frame( GTK_FRAME( gtk_widget_get_parent( widget ) ) ); if( widget == gtk_frame_get_label_widget( frame ) && !Gtk::gtk_widget_find_parent( widget, "GtkPizza" ) ) { #if OXYGEN_DEBUG std::cout << "Oxygen::Animations::realizationHook -" << " widget: " << widget << " (" << G_OBJECT_TYPE_NAME( widget ) << ")" << " parent: " << frame << " (" << G_OBJECT_TYPE_NAME( frame ) << ")" << std::endl; #endif // modify alignment gtk_frame_set_label_align( frame, 0.5, 0.0 ); gtk_frame_set_shadow_type( frame, GTK_SHADOW_OUT ); // register to engine Animations& animations( *static_cast<Animations*>(data) ); animations.groupBoxLabelEngine().registerWidget( widget ); animations.groupBoxLabelEngine().adjustSize( widget ); } } #endif return TRUE; }
static gboolean _cairo_dock_search_words_in_frame_title (gchar **pKeyWords, GtkWidget *pCurrentFrame, gboolean bAllWords, gboolean bHighLightText, gboolean bHideOther) { //\______________ On recupere son titre. GtkWidget *pFrameLabel = NULL; GtkWidget *pLabelContainer = (GTK_IS_FRAME (pCurrentFrame) ? gtk_frame_get_label_widget (GTK_FRAME (pCurrentFrame)) : gtk_expander_get_label_widget (GTK_EXPANDER (pCurrentFrame))); //g_print ("pLabelContainer : %x\n", pLabelContainer); if (GTK_IS_LABEL (pLabelContainer)) { pFrameLabel = pLabelContainer; } else if (pLabelContainer != NULL) { GList *pChildList = gtk_container_get_children (GTK_CONTAINER (pLabelContainer)); if (pChildList != NULL && pChildList->next != NULL) pFrameLabel = pChildList->next->data; } //\______________ On cherche les mots-cles dedans. gchar *cModifiedText = NULL, *str = NULL, *cKeyWord; gboolean bFoundInFrameTitle = FALSE; if (pFrameLabel != NULL) { const gchar *cFrameTitle = gtk_label_get_text (GTK_LABEL (pFrameLabel)); int i; for (i = 0; pKeyWords[i] != NULL; i ++) { cKeyWord = pKeyWords[i]; _copy_string_to_buffer (cFrameTitle); if (bHighLightText) cModifiedText = cairo_dock_highlight_key_word (cFrameTitle, cKeyWord, TRUE); else str = _search_in_buffer (cKeyWord); if (cModifiedText != NULL || str != NULL) // on a trouve ce mot. { //g_print (" on a trouve %s dans le titre\n", cKeyWord); bFoundInFrameTitle = TRUE; if (cModifiedText != NULL) { gtk_label_set_markup (GTK_LABEL (pFrameLabel), cModifiedText); cFrameTitle = gtk_label_get_label (GTK_LABEL (pFrameLabel)); // Pango inclus. g_free (cModifiedText); cModifiedText = NULL; } else str = NULL; if (! bAllWords) break ; } else if (bAllWords) { bFoundInFrameTitle = FALSE; break ; } } if (! bFoundInFrameTitle) // on remet le texte par defaut. { cModifiedText = g_strdup_printf ("<b>%s</b>", cFrameTitle); gtk_label_set_markup (GTK_LABEL (pFrameLabel), cModifiedText); g_free (cModifiedText); cModifiedText = NULL; } } return bFoundInFrameTitle; }
void cairo_dock_apply_filter_on_group_widget (gchar **pKeyWords, gboolean bAllWords, gboolean bSearchInToolTip, gboolean bHighLightText, gboolean bHideOther, GSList *pWidgetList) { //g_print ("%s ()\n", __func__); if (sBuffer == NULL) sBuffer = g_string_new (""); gpointer *pGroupKeyWidget; GList *pSubWidgetList; GtkWidget *pLabel, *pKeyBox, *pVBox, *pFrame, *pCurrentFrame = NULL, *pExpander; const gchar *cDescription; gchar *cToolTip = NULL; gchar *cModifiedText=NULL, *str=NULL; gboolean bFound, bFrameVisible = !bHideOther; int i; gchar *cKeyWord; GSList *w; for (w = pWidgetList; w != NULL; w = w->next) { bFound = FALSE; pGroupKeyWidget = w->data; //g_print ("widget : %s - %s\n", pGroupKeyWidget[0], pGroupKeyWidget[1]); pSubWidgetList = pGroupKeyWidget[2]; if (pSubWidgetList == NULL) continue; pLabel = pGroupKeyWidget[4]; if (pLabel == NULL) continue; pKeyBox = pGroupKeyWidget[5]; if (pKeyBox == NULL) continue; pVBox = gtk_widget_get_parent (pKeyBox); pFrame = gtk_widget_get_parent (pVBox); //\______________ On cache une frame vide, ou au contraire on montre son contenu si elle contient les mots-cles. if (pFrame != pCurrentFrame) // on a change de frame. { if (pCurrentFrame) { gboolean bFoundInFrameTitle = _cairo_dock_search_words_in_frame_title (pKeyWords, pCurrentFrame, bAllWords, bHighLightText, bHideOther); if (! bFrameVisible && bHideOther) { if (! bFoundInFrameTitle) gtk_widget_hide (pCurrentFrame); else gtk_widget_show_all (pCurrentFrame); // montre tous les widgets du groupe. } else gtk_widget_show (pCurrentFrame); } if (GTK_IS_FRAME (pFrame)) // devient la frame courante. { pExpander = gtk_widget_get_parent (pFrame); if (GTK_IS_EXPANDER (pExpander)) pFrame = pExpander; // c'est l'expander qui a le texte, c'est donc ca qu'on veut cacher. pCurrentFrame = pFrame; bFrameVisible = FALSE; } else { pCurrentFrame = NULL; } //g_print ("pCurrentFrame <- %x\n", pCurrentFrame); } cDescription = gtk_label_get_text (GTK_LABEL (pLabel)); // sans les markup Pango. if (bSearchInToolTip) cToolTip = gtk_widget_get_tooltip_text (pKeyBox); //g_print ("cDescription : %s (%s)\n", cDescription, cToolTip); bFound = FALSE; for (i = 0; pKeyWords[i] != NULL; i ++) { cKeyWord = pKeyWords[i]; _copy_string_to_buffer (cDescription); if (bHighLightText) cModifiedText = cairo_dock_highlight_key_word (cDescription, cKeyWord, FALSE); else str = _search_in_buffer (cKeyWord); if (cModifiedText == NULL && str == NULL) { if (cToolTip != NULL) { _copy_string_to_buffer (cToolTip); str = _search_in_buffer (cKeyWord); } } if (cModifiedText != NULL || str != NULL) { //g_print (" on a trouve %s\n", cKeyWord); bFound = TRUE; if (cModifiedText != NULL) { gtk_label_set_markup (GTK_LABEL (pLabel), cModifiedText); cDescription = gtk_label_get_label (GTK_LABEL (pLabel)); // Pango inclus. g_free (cModifiedText); cModifiedText = NULL; } else { gtk_label_set_text (GTK_LABEL (pLabel), cDescription); str = NULL; } if (! bAllWords) break ; } else if (bAllWords) { bFound = FALSE; break ; } } if (bFound) { //g_print ("on montre ce widget\n"); gtk_widget_show (pKeyBox); if (pCurrentFrame != NULL) bFrameVisible = TRUE; } else if (bHideOther) { //g_print ("on cache ce widget\n"); gtk_widget_hide (pKeyBox); } else gtk_widget_show (pKeyBox); g_free (cToolTip); } if (pCurrentFrame) // la derniere frame. { gboolean bFoundInFrameTitle = _cairo_dock_search_words_in_frame_title (pKeyWords, pCurrentFrame, bAllWords, bHighLightText, bHideOther); if (! bFrameVisible && bHideOther) { if (! bFoundInFrameTitle) gtk_widget_hide (pCurrentFrame); else gtk_widget_show_all (pCurrentFrame); // montre tous les widgets du groupe. } else gtk_widget_show (pCurrentFrame); } }
static void gmpc_tools_metadata_appearance_real_preferences_pane_construct (GmpcPluginPreferencesIface* base, GtkContainer* container) { GmpcToolsMetadataAppearance * self; GtkBuilder* _tmp0_ = NULL; GtkBuilder* builder; gchar* _tmp1_ = NULL; gchar* preferences_ui_file; GObject* _tmp2_ = NULL; GObject* _tmp3_; GtkWidget* _tmp4_; GtkWidget* builderWidget; GObject* _tmp5_ = NULL; GObject* _tmp6_; GtkWidget* _tmp7_; gint _tmp8_; GObject* _tmp9_ = NULL; GObject* _tmp10_; GtkWidget* _tmp11_; gint _tmp12_; GObject* _tmp13_ = NULL; GObject* _tmp14_; GtkWidget* _tmp15_; gint _tmp16_; GObject* _tmp17_ = NULL; GObject* _tmp18_; GtkWidget* _tmp19_; gint _tmp20_; GObject* _tmp21_ = NULL; GObject* _tmp22_; GtkWidget* _tmp23_; gint _tmp24_; GObject* _tmp25_ = NULL; GObject* _tmp26_; GtkWidget* _tmp27_; gint _tmp28_; GError * _inner_error_ = NULL; self = (GmpcToolsMetadataAppearance*) base; g_return_if_fail (container != NULL); _tmp0_ = gtk_builder_new (); builder = _tmp0_; _tmp1_ = gmpc_get_full_glade_path ("preferences-metadata-appearance.ui"); preferences_ui_file = _tmp1_; gtk_builder_add_from_file (builder, preferences_ui_file, &_inner_error_); if (_inner_error_ != NULL) { _g_free0 (preferences_ui_file); _g_object_unref0 (builder); goto __catch15_g_error; } gtk_builder_connect_signals (builder, NULL); _tmp2_ = gtk_builder_get_object (builder, "frame_metadata_appearance_settings"); _tmp3_ = _tmp2_; _tmp4_ = _g_object_ref0 ((GtkWidget*) (GTK_IS_FRAME (_tmp3_) ? ((GtkFrame*) _tmp3_) : NULL)); builderWidget = _tmp4_; gtk_container_add (container, builderWidget); gtk_widget_show_all (builderWidget); _tmp5_ = gtk_builder_get_object (builder, "checkbutton_show_lyrics"); _tmp6_ = _tmp5_; _tmp7_ = _g_object_ref0 ((GtkWidget*) (GTK_IS_CHECK_BUTTON (_tmp6_) ? ((GtkCheckButton*) _tmp6_) : NULL)); _g_object_unref0 (builderWidget); builderWidget = _tmp7_; _tmp8_ = cfg_get_single_value_as_int_with_default (config, "MetaData", "show-lyrics", 1); gtk_toggle_button_set_active ((GtkToggleButton*) GTK_CHECK_BUTTON (builderWidget), (gboolean) _tmp8_); _tmp9_ = gtk_builder_get_object (builder, "checkbutton_show_artist_information"); _tmp10_ = _tmp9_; _tmp11_ = _g_object_ref0 ((GtkWidget*) (GTK_IS_CHECK_BUTTON (_tmp10_) ? ((GtkCheckButton*) _tmp10_) : NULL)); _g_object_unref0 (builderWidget); builderWidget = _tmp11_; _tmp12_ = cfg_get_single_value_as_int_with_default (config, "MetaData", "show-artist-information", 1); gtk_toggle_button_set_active ((GtkToggleButton*) GTK_CHECK_BUTTON (builderWidget), (gboolean) _tmp12_); _tmp13_ = gtk_builder_get_object (builder, "checkbutton_show_web_links"); _tmp14_ = _tmp13_; _tmp15_ = _g_object_ref0 ((GtkWidget*) (GTK_IS_CHECK_BUTTON (_tmp14_) ? ((GtkCheckButton*) _tmp14_) : NULL)); _g_object_unref0 (builderWidget); builderWidget = _tmp15_; _tmp16_ = cfg_get_single_value_as_int_with_default (config, "MetaData", "show-web-links", 1); gtk_toggle_button_set_active ((GtkToggleButton*) GTK_CHECK_BUTTON (builderWidget), (gboolean) _tmp16_); _tmp17_ = gtk_builder_get_object (builder, "checkbutton_show_similar_artists"); _tmp18_ = _tmp17_; _tmp19_ = _g_object_ref0 ((GtkWidget*) (GTK_IS_CHECK_BUTTON (_tmp18_) ? ((GtkCheckButton*) _tmp18_) : NULL)); _g_object_unref0 (builderWidget); builderWidget = _tmp19_; _tmp20_ = cfg_get_single_value_as_int_with_default (config, "MetaData", "show-similar-artist", 1); gtk_toggle_button_set_active ((GtkToggleButton*) GTK_CHECK_BUTTON (builderWidget), (gboolean) _tmp20_); _tmp21_ = gtk_builder_get_object (builder, "checkbutton_show_similar_songs"); _tmp22_ = _tmp21_; _tmp23_ = _g_object_ref0 ((GtkWidget*) (GTK_IS_CHECK_BUTTON (_tmp22_) ? ((GtkCheckButton*) _tmp22_) : NULL)); _g_object_unref0 (builderWidget); builderWidget = _tmp23_; _tmp24_ = cfg_get_single_value_as_int_with_default (config, "MetaData", "show-similar-songs", 1); gtk_toggle_button_set_active ((GtkToggleButton*) GTK_CHECK_BUTTON (builderWidget), (gboolean) _tmp24_); _tmp25_ = gtk_builder_get_object (builder, "checkbutton_show_guitar_tabs"); _tmp26_ = _tmp25_; _tmp27_ = _g_object_ref0 ((GtkWidget*) (GTK_IS_CHECK_BUTTON (_tmp26_) ? ((GtkCheckButton*) _tmp26_) : NULL)); _g_object_unref0 (builderWidget); builderWidget = _tmp27_; _tmp28_ = cfg_get_single_value_as_int_with_default (config, "MetaData", "show-guitar-tabs", 1); gtk_toggle_button_set_active ((GtkToggleButton*) GTK_CHECK_BUTTON (builderWidget), (gboolean) _tmp28_); _g_object_unref0 (builderWidget); _g_free0 (preferences_ui_file); _g_object_unref0 (builder); goto __finally15; __catch15_g_error: { GError * e; e = _inner_error_; _inner_error_ = NULL; fprintf (stderr, "Could not load UI: %s\n", e->message); _g_error_free0 (e); } __finally15: if (_inner_error_ != NULL) { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } }
void gimp_enum_radio_frame_add (GtkFrame *frame, GtkWidget *widget, gint enum_value) { GtkWidget *vbox; GList *children; GList *list; gint pos; g_return_if_fail (GTK_IS_FRAME (frame)); g_return_if_fail (GTK_IS_WIDGET (widget)); vbox = gtk_bin_get_child (GTK_BIN (frame)); g_return_if_fail (GTK_IS_VBOX (vbox)); children = gtk_container_get_children (GTK_CONTAINER (vbox)); for (list = children, pos = 1; list; list = g_list_next (list), pos++) { if (GTK_IS_RADIO_BUTTON (list->data) && GPOINTER_TO_INT (g_object_get_data (list->data, "gimp-item-data")) == enum_value) { GtkWidget *radio = list->data; GtkWidget *hbox; GtkWidget *spacer; gint indicator_size; gint indicator_spacing; gint focus_width; gint focus_padding; gtk_widget_style_get (radio, "indicator-size", &indicator_size, "indicator-spacing", &indicator_spacing, "focus-line-width", &focus_width, "focus-padding", &focus_padding, NULL); hbox = gtk_hbox_new (FALSE, 0); spacer = gtk_vbox_new (FALSE, 0); gtk_widget_set_size_request (spacer, indicator_size + 3 * indicator_spacing + focus_width + focus_padding + GTK_CONTAINER (radio)->border_width, -1); gtk_box_pack_start (GTK_BOX (hbox), spacer, FALSE, FALSE, 0); gtk_widget_show (spacer); gtk_box_pack_start (GTK_BOX (hbox), widget, TRUE, TRUE, 0); gtk_widget_show (widget); g_object_set_data (G_OBJECT (radio), "set_sensitive", hbox); g_signal_connect (radio, "toggled", G_CALLBACK (gimp_toggle_button_sensitive_update), NULL); gtk_widget_set_sensitive (hbox, GTK_TOGGLE_BUTTON (list->data)->active); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); gtk_box_reorder_child (GTK_BOX (vbox), hbox, pos); gtk_widget_show (hbox); break; } } g_list_free (children); }
/** /brief /author Peter G Baum, William J Giddings **/ static int tableFunc ( ClientData data, Tcl_Interp *interp, int objc, Tcl_Obj * const objv[] ) { const char *cmds[] = { "delete", "configure", "add", "addRow", "addColumn", "class", NULL }; enum cmdIdx { DeleteIdx, ConfigureIdx, AddIdx, AddRowIdx, AddColumnIdx, ClassIdx }; int idx; GtkWidget *widget = GTK_WIDGET ( data ); GtkFrame *frame; GtkTable *table; if ( objc < 2 ) { Tcl_WrongNumArgs ( interp, 1, objv, "command" ); return TCL_ERROR; } if ( GTK_IS_FRAME ( widget ) ) { frame = GTK_FRAME ( widget ); table = GTK_TABLE ( gtk_bin_get_child ( GTK_BIN ( frame ) ) ); } else { frame = NULL; table = GTK_TABLE ( widget ); } /* For debugging purposes { guint rows, columns; g_object_get( G_OBJECT( table ), "n_rows", &rows, NULL ); g_object_get( G_OBJECT( table ), "n_columns", &columns, NULL ); printf( "rows: %d cols: %d\n", (int)rows, (int)columns ); } */ if ( Tcl_GetIndexFromObj ( interp, objv[1], cmds, "command", TCL_EXACT, &idx ) != TCL_OK ) return TCL_ERROR; switch ( idx ) { case ClassIdx: Tcl_SetObjResult ( interp, Tcl_NewStringObj ( "table", -1 ) ); break; case DeleteIdx: return gnoclDelete ( interp, widget, objc, objv ); case ConfigureIdx: { int ret = TCL_ERROR; if ( gnoclParseOptions ( interp, objc - 1, objv + 1, tableOptions ) == TCL_OK ) { ret = configure ( interp, frame, table, tableOptions ); } gnoclClearOptions ( tableOptions ); return ret; } break; case AddIdx: return tableFuncAdd ( table, interp, objc, objv ); case AddColumnIdx: case AddRowIdx: return addRowCol ( table, interp, objc, objv, idx == AddRowIdx ); } return TCL_OK; }