; Module/File: Gadget_GetGtkTypeStructure2.pb ; Function: Shows the gtk-types (names) of some widgets up to window (big example) - Linux gtk2/gtk3 ; Author: Omi ; Date: Dec. 29, 2017 new ; Version: 0.3, updt. gtk3 / comment / ScrollAreaGadget removed ; Target Compiler: PureBasic 5.22/5.31/5.40/5.5/5.6 ; Target OS: Linux: (X/K/L)ubuntu, Mint, 32/64, Ascii/Uni ;-------------------------------------------------------------- ;gtk2-structure from Window to a Gadget: (last 3 are used for ScrollAreaGadget) ; GtkWindow > GtkVBox > GtkFixed > (GtkScrolledWindow > GtkViewport > GtkFixed) > ... ;gtk3-structure from Window to a Gadget on PB5.40: (last 3 are used for ScrollAreaGadget) ; GtkWindow > GtkVBox > GtkScrolledWindow > GtkViewport > GtkFixed > (GtkScrolledWindow > GtkViewport > GtkFixed) > ... ;gtk3-structure from Window to a Gadget on PB5.46+ and evtl. 5.62+: ; GtkWindow > GtkVBox > GtkLayout > ... EnableExplicit ImportC "" gtk_label_new(text.p-utf8) gtk_tool_button_new_from_stock(stock_id.p-utf8) EndImport UsePNGImageDecoder() #MainWin= 0 Enumeration #Toolbar1 #StatusBar1 #SAGadget #Button1 #Button2 #IButton1 #String1 #Button3 #Button4 #Button5 #TG1 #TG2 #IG1 #Combo1 #Combo2 #Edit1 #Web1 #LIG1 #Tree1 #ExG1 #ElG1 #ECG1 #SG1 #TBar1 #SBar1 #FrG #Text0 #Text1 #Text2 #Text3 #Text4 #Text5 #Text6 #Text7 #Text8 #Text9 #Text10 #Text11 #Text12 #Text13 #Text14 #Text15 #Text16 #Text17 #Text18 #Text19 #Text20 #Text21 #Text22 #Text23 EndEnumeration #Img1 = 0 #Img2 = 1 Global.i gEvent, gQuit Global *toolitem, *TBar1Button1 Procedure.s GetGtkWidgetParents(GadgetID) Protected.i I, Start Protected.s S= "" Static Widget If GadgetID > 0 S+ PeekS(gtk_widget_get_name_(GadgetID), -1, #PB_UTF8) + " > " While GadgetID Widget = GadgetID GadgetID= gtk_widget_get_parent_(GadgetID) If GadgetID I+ 1 If PeekS(gtk_widget_get_name_(GadgetID), -1, #PB_UTF8) = "GtkViewport" And Start = 0 Start = I EndIf If Start = 0 Or I < Start Or I > Start+ 2; Remove ScrollAreaGadget S= PeekS(gtk_widget_get_name_(GadgetID), -1, #PB_UTF8) + " > " + S EndIf EndIf Wend EndIf If Right(S, 3) = " > " S= Left(S, Len(S)- 3) EndIf ProcedureReturn S EndProcedure If OpenWindow(#MainWin, #PB_Ignore, 32, 1000, 600, "Gadgettype-structures up to window (big example)") If CreateToolBar(#Toolbar1, WindowID(#MainWin)) *TBar1Button1= gtk_tool_button_new_from_stock(#GTK_STOCK_NEW) gtk_toolbar_insert_(ToolBarID(#Toolbar1), *TBar1Button1, -1) TextGadget(#Text0, 0, 0, 500, 40, GetGtkWidgetParents(ToolBarID(#Toolbar1))) gtk_label_set_line_wrap_(GadgetID(#Text0), #False) *toolitem= gtk_tool_item_new_() gtk_tool_item_set_visible_horizontal_(*toolitem, #True) gtk_widget_reparent_(GadgetID(#Text0), *toolitem) gtk_toolbar_insert_(ToolBarID(#Toolbar1), *toolitem, -1) gtk_widget_show_all_(WindowID(#MainWin)) EndIf If CreateStatusBar(#StatusBar1, WindowID(#MainWin)) AddStatusBarField(100) AddStatusBarField(500) StatusBarText(#StatusBar1, 0, "PB-StatusBar") EndIf ScrollAreaGadget(#SAGadget, 5, 5, 990, 520, 1100, 1420) ButtonGadget (#Button1, 5, 5, 200, 26, "ButtonGadget") ButtonGadget (#Button2, 5, 35, 200, 26, "ButtonGadget w. toggle-flag", #PB_Button_Toggle) If LoadImage(#Img1, #PB_Compiler_Home + "./examples/sources/Data/world.png") ButtonImageGadget(#IButton1, 5, 65, 30, 30, ImageID(#Img1), #PB_Button_Toggle) EndIf StringGadget (#String1, 5, 105, 200, 26, "StringGadget") CheckBoxGadget (#Button3, 5, 135, 200, 24, "CheckBoxGadget") OptionGadget (#Button4, 5, 160, 200, 24, "OptionGadget 1") OptionGadget (#Button5, 5, 185, 200, 24, "OptionGadget 2") TextGadget (#TG1, 5, 210, 200, 20, "TextGadget") TextGadget (#TG2, 5, 232, 200, 24, "TextGadget with border", #PB_Text_Border) If LoadImage(#Img2, #PB_Compiler_Home + "./examples/sources/Data/world.png") ImageGadget (#IG1, 5, 262, 16, 16, ImageID(#Img2)) EndIf ComboBoxGadget (#Combo1, 5, 285, 200, 30) : AddGadgetItem(#Combo1, -1, "ComboBox") : SetGadgetState(#Combo1, 0) ComboBoxGadget (#Combo2, 5, 315, 200, 30, #PB_ComboBox_Editable) : AddGadgetItem(#Combo2, -1, "ComboBox edit") : SetGadgetState(#Combo2, 0) EditorGadget (#Edit1, 5, 365, 200, 75) : SetGadgetText(#Edit1, "EditorGadget") WebGadget (#Web1, 5, 500, 200, 120, "http://www.purebasic.fr/german/index.php") ListViewGadget (#LIG1, 5, 630, 200, 100) : AddGadgetItem(#LIG1, -1, "ListViewGadget") TreeGadget (#Tree1, 5, 760, 200, 100) : AddGadgetItem(#Tree1, -1, "TreeGadget") ExplorerTreeGadget (#ExG1, 5, 890, 200, 100, "/") ExplorerListGadget (#ElG1, 5, 1020, 200, 100, "/") ExplorerComboGadget(#ECG1, 5, 1150, 200, 30, "/") SpinGadget (#SG1, 5, 1200, 200, 30, 0, 10, #PB_Spin_Numeric) TrackBarGadget (#TBar1, 5, 1240, 200, 30, 10, 100) ScrollBarGadget(#SBar1, 5, 1280, 200, 30, 10, 100, 50) FrameGadget (#FrG, 5, 1320, 200, 60, "Frame-Gadget") ;no demonstration for ... ;ImageGadget(), CalendarGadget(), ContainerGadget(), DateGadget(), ExplorerTreeGadget(), ;HyperLinkGadget(), IPAddressGadget(), ListIconGadget(), PanelGadget(), ProgressBarGadget(), SplitterGadget() TextGadget(#Text1, 210, 5, 1000, 22, "") TextGadget(#Text2, 210, 35, 1000, 22, "") TextGadget(#Text3, 210, 65, 1000, 22, "") TextGadget(#Text4, 210, 105, 1000, 22, "") TextGadget(#Text5, 210, 135, 1000, 22, "") TextGadget(#Text6, 210, 160, 1000, 22, ""); Button5 left ; TextGadget(#Text7, 210, 210, 1000, 22, "") TextGadget(#Text8, 210, 210, 1000, 22, "") TextGadget(#Text9, 210, 232, 1000, 22, "") TextGadget(#Text10, 210, 262, 1000, 22, "") TextGadget(#Text11, 210, 285, 1000, 22, "") TextGadget(#Text12, 210, 315, 1000, 22, "") TextGadget(#Text13, 210, 365, 1000, 22, "") TextGadget(#Text14, 210, 500, 1000, 22, "") TextGadget(#Text15, 210, 630, 1000, 22, "") TextGadget(#Text16, 210, 760, 1000, 22, "") TextGadget(#Text17, 210, 890, 1000, 22, "") TextGadget(#Text18, 210, 1020, 1000, 22, "") TextGadget(#Text19, 210, 1150, 1000, 22, "") TextGadget(#Text20, 210, 1200, 1000, 22, "") TextGadget(#Text21, 210, 1240, 1000, 22, "") TextGadget(#Text22, 210, 1280, 1000, 22, "") TextGadget(#Text23, 210, 1320, 1000, 22, "") SetGadgetText(#Text1, GetGtkWidgetParents(GadgetID(#Button1))) SetGadgetText(#Text2, GetGtkWidgetParents(GadgetID(#Button2))) SetGadgetText(#Text3, GetGtkWidgetParents(GadgetID(#IButton1))) SetGadgetText(#Text4, GetGtkWidgetParents(GadgetID(#String1))) SetGadgetText(#Text5, GetGtkWidgetParents(GadgetID(#Button3))) SetGadgetText(#Text6, GetGtkWidgetParents(GadgetID(#Button4))) SetGadgetText(#Text8, GetGtkWidgetParents(GadgetID(#TG1))) SetGadgetText(#Text9, GetGtkWidgetParents(GadgetID(#TG2))) SetGadgetText(#Text10, GetGtkWidgetParents(GadgetID(#IG1))) SetGadgetText(#Text11, GetGtkWidgetParents(GadgetID(#Combo1))) SetGadgetText(#Text12, GetGtkWidgetParents(GadgetID(#Combo2))) SetGadgetText(#Text13, GetGtkWidgetParents(GadgetID(#Edit1))) SetGadgetText(#Text14, GetGtkWidgetParents(GadgetID(#Web1))) SetGadgetText(#Text15, GetGtkWidgetParents(GadgetID(#LIG1))) SetGadgetText(#Text16, GetGtkWidgetParents(GadgetID(#Tree1))) SetGadgetText(#Text17, GetGtkWidgetParents(GadgetID(#ExG1))) SetGadgetText(#Text18, GetGtkWidgetParents(GadgetID(#ElG1))) SetGadgetText(#Text19, GetGtkWidgetParents(GadgetID(#ECG1))) SetGadgetText(#Text20, GetGtkWidgetParents(GadgetID(#SG1))) SetGadgetText(#Text21, GetGtkWidgetParents(GadgetID(#TBar1))) SetGadgetText(#Text22, GetGtkWidgetParents(GadgetID(#SBar1))) SetGadgetText(#Text23, GetGtkWidgetParents(GadgetID(#FrG))) StatusBarText(#StatusBar1, 1, GetGtkWidgetParents(StatusBarID(#StatusBar1))) CloseGadgetList() gtk_label_set_selectable_(GadgetID(#Text1), #True) Else End EndIf Repeat gEvent = WaitWindowEvent() If EventWindow() = #MainWin Select gEvent Case #PB_Event_CloseWindow gQuit= #True EndSelect EndIf Until gQuit End ; IDE Options = PureBasic 5.46 LTS Beta 2 (Linux - x86) ; CursorPosition = 173 ; FirstLine = 147 ; Folding = - ; EnableUnicode ; EnableXP