; Module/File: Spin_Alignment.pb ; Function: Adds API 'spinbutton' and change Text alignment - Linux gtk2/gtk3 ; Author: Omi ; Date: Jul. 1, 2016 ; Version: 0.1 ; Target Compiler: PureBasic 5.22/5.31/5.4 ; Target OS: Linux: (X/K/L)ubuntu, Mint, 32/64, Ascii/Uni ;-------------------------------------------------------------- EnableExplicit ImportC "" gtk_entry_set_alignment(*entry.GtkEntry, xalign.f) gtk_adjustment_new(value.d, lower.d, upper.d, step_increment.d, page_increment.d, page_size.d) gtk_spin_button_new(*adjustment.GtkAdjustment, climb_rate.d, digits.i) gtk_spin_button_get_value.d(*widget.GtkWidget) g_signal_connect(*instance, detailed_signal.p-utf8, *c_handler, *data, destroy= 0, flags= 0) As "g_signal_connect_data" EndImport ; Object constants #MainWin= 0 #Txt1 = 0 #Txt2 = 1 #Txt3 = 2 #SpB1 = 3 #WinX = 300 #WinY = 200 #WinW = 320 #WinH = 200 Global.i gEvent, gQuit Global.GtkWidget *SButton1, *SButton2, *SButton3 ProcedureC Callback_SButtonVChanged(*widget.GtkWidget, user_data) Debug gtk_spin_button_get_value_as_int_(*widget); for int EndProcedure Procedure SpinButtonGadget(Gadget, x, y, w, h, value.d, lower.d, upper.d, step_inc.d, page_inc.d, digits) Protected.i Container = ContainerGadget(Gadget, x, y, w, h, #PB_Container_BorderLess) Protected *adjustment.GtkAdjustment= gtk_adjustment_new(value, lower, upper, step_inc, page_inc, #Null) Protected *sbutton.GtkWidget = gtk_spin_button_new(*adjustment, 1.0, digits) If Gadget <> #PB_Any : Container= Gadget : EndIf gtk_spin_button_set_numeric_(*sbutton, #True) gtk_widget_set_size_request_(*sbutton, GadgetWidth(Container)- 4, -1) gtk_container_add_(GadgetID(Container), *sbutton) gtk_widget_show_(*sbutton) CloseGadgetList() ProcedureReturn *sbutton EndProcedure If OpenWindow(#MainWin, #WinX, #WinY, #WinW, #WinH, "SpinButtonGadget alignment", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) TextGadget(#Txt1, 5, 5, 310, 24, "original alignment ...") TextGadget(#Txt2, 5, 60, 310, 24, "center alignment ...") TextGadget(#Txt3, 5, 120, 310, 24, "right alignment ...") *SButton1= SpinButtonGadget(#PB_Any, 5, 30, 100, 30, 50, 0, 100, 2, 10, 0) *SButton2= SpinButtonGadget(#PB_Any, 5, 85, 100, 30, 0, -50, 50, 1, 5, 0) *SButton3= SpinButtonGadget(#PB_Any, 5, 145, 100, 30, 0, -5, 5, 1, 2, 0) gtk_entry_set_alignment(*SButton2, 0.5); hor. center gtk_entry_set_alignment(*SButton3, 1.0); right align g_signal_connect(*SButton1, "value-changed", @Callback_SButtonVChanged(), 0) g_signal_connect(*SButton2, "value-changed", @Callback_SButtonVChanged(), 0) g_signal_connect(*SButton3, "value-changed", @Callback_SButtonVChanged(), 0) Repeat gEvent= WaitWindowEvent() Select gEvent Case #PB_Event_CloseWindow gQuit= #True EndSelect Until gQuit EndIf ; IDE Options = PureBasic 5.62 (Linux - x86) ; CursorPosition = 60 ; Folding = - ; EnableXP ; EnableUnicode