; Module/File: LIG_Basic_Window.pb ; Function: LIG: some column-width-functions - Linux ; Author: Omi ; Date: Juli 03, 2014 ; Version: 0.1 ; Target Compiler: PureBasic 5.22/5.31/5.40 ; Target OS: Linux: (X/K/L)ubuntu, Mint, 32/64, Ascii/Uni ;-------------------------------------------------------------- EnableExplicit ; Object constants #MainWin= 0 #LIG= 0 #But= 1 #WinX= 200 #WinY= 200 #WinW= 500 #WinH= 450 Global.l gEvent, gQuit ;- Functions ... Procedure.i LIG_CountColumns(Gadget); LIG: Anzahl Spalten holen Protected *ColumnList= gtk_tree_view_get_columns_(GadgetID(Gadget)); Zeiger auf Spalten Protected Columns= g_list_length_(*ColumnList) g_list_free_(*ColumnList) ;on gtk3 the shorter version instead ... ;gtk_tree_view_get_n_columns(GadgetID(Gadget)) ProcedureReturn Columns EndProcedure Procedure LIG_SetColumnWidths(Gadget) Protected *Column *Column = gtk_tree_view_get_column_(GadgetID(#LIG), 2) If *Column gtk_tree_view_column_set_min_width_(*Column, 30) gtk_tree_view_column_set_max_width_(*Column, 80) EndIf *Column = gtk_tree_view_get_column_(GadgetID(#LIG), 1) If *Column gtk_tree_view_column_set_fixed_width_(*Column, 120) EndIf EndProcedure Procedure LIG_GetColumnWidths(Gadget) Protected.i I Protected *Column For I = 0 To LIG_CountColumns(#LIG)- 1 *Column = gtk_tree_view_get_column_(GadgetID(#LIG), I); LINUX-API - get the pointer to the column If *Column Debug "Breite ..." Debug "Spalte " + Str(I) + ": " + Str(gtk_tree_view_column_get_width_(*Column)) Debug "fixe Breite ..." Debug "Spalte " + Str(I) + ": " + Str(gtk_tree_view_column_get_fixed_width_(*Column)) Debug "Min. Breite ..." Debug "Spalte " + Str(I) + ": " + Str(gtk_tree_view_column_get_min_width_(*Column)) Debug "Max. Breite ..." Debug "Spalte " + Str(I) + ": " + Str(gtk_tree_view_column_get_max_width_(*Column)) Debug "" EndIf Next I EndProcedure ;- ;- Example ... Procedure CreateWindow_Main() Protected.l I, O Protected *Column #Img1= 0 #Img2= 1 If OpenWindow(#MainWin, #WinX, #WinY, #WinW, #WinH, "Width of columns - diff. modes", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) ListIconGadget(#LIG, 5, 5, 480, 380, "Spalte 1", 70, #PB_ListIcon_AlwaysShowSelection | #PB_ListIcon_GridLines | #PB_ListIcon_CheckBoxes) ButtonGadget(#But, 5, 400, 150, 25, "Debug Spaltenbreiten") For O= 1 To 4 AddGadgetColumn(#LIG, O, "Spalte "+Str(O+ 1), 70) Next O For I= 1 To 20 AddGadgetItem(#LIG, -1, Str(I)+".1") Next I For O= 1 To 4 For I= 0 To 19 SetGadgetItemText(#LIG, I, Str(I+1)+"."+Str(O+1), O) Next I Next O For O= 3 To 4 For I= 0 To 19 SetGadgetItemText(#LIG, I, Str(20-I)+"."+Str(O+1), O) Next I Next O LIG_SetColumnWidths(#LIG); Setzt einige Spalteneinstellungen EndIf EndProcedure CreateWindow_Main() Repeat gEvent= WaitWindowEvent() Select gEvent Case #PB_Event_CloseWindow gQuit= #True Case #PB_Event_Gadget If EventGadget()= #But LIG_GetColumnWidths(#LIG) EndIf EndSelect Until gQuit ; IDE Options = PureBasic 5.40 LTS Beta 9 (Linux - x86) ; CursorPosition = 102 ; FirstLine = 16 ; Folding = - ; EnableUnicode ; EnableXP ; CurrentDirectory = /home/charly-xubuntu/Programming/PureBasic/purebasic/