[Linux] Replacing PB-Messagerequster

Share your advanced PureBasic knowledge/code with the community.
walker
Enthusiast
Enthusiast
Posts: 634
Joined: Wed May 05, 2004 4:04 pm
Location: Germany

[Linux] Replacing PB-Messagerequster

Post by walker »

Hi,

may this sample code is usefull for someone. It shows, how to use GTK-based Messagerequester which are more customizeable and even free moveable.....

Code: Select all

;2006 by walker
;
gtk_init_(0,0)

Procedure gMessageRequester(titel.s,message.s,ok.l,cancel.l,yes.l,no.l)
txt.s=message+#LF$
ueber.s=titel
*gdialog.GtkDialog
*gdialog=gtk_dialog_new_()

*gtext.GtkWidget
*gtext=gtk_label_new_(txt)
gtk_window_set_title_(*gdialog\window,ueber)
gtk_container_add_(*gdialog\vbox,*gtext)
gtk_widget_show_(*gtext)
gtk_label_set_line_wrap_(*gtext,#True);linewrap
gtk_label_set_justify_(*gtext,#GTK_JUSTIFY_LEFT);text justification
gtk_misc_set_alignment_(*gtext,0.1,0.1);set the label to the left top corner...always .......... 0.01 is more top left....
gtk_window_set_default_size_( *gdialog , 230, 100); the minimum size
; gtk_window_move_(*gdialog,10,10); uncomment if you  want a special position
If cancel
    gtk_dialog_add_button_(*gdialog,#gtk_stock_cancel,#gtk_response_cancel)
EndIf
If ok   
    gtk_dialog_add_button_(*gdialog,#gtk_stock_ok,#gtk_response_ok)
EndIf
If no
    gtk_dialog_add_button_(*gdialog,#gtk_stock_no,#gtk_response_no)
EndIf
If yes
    gtk_dialog_add_button_(*gdialog,#gtk_stock_yes,#gtk_response_yes)
EndIf
x=gtk_dialog_run_(*gdialog);return the presed button
gtk_widget_destroy_(*gdialog);close requester
ProcedureReturn x
EndProcedure


*gdialog.GtkDialog
*gdialog=gtk_message_dialog_new_(hwnd,1,#gtk_message_info,#GTK_Buttons_ok,"Simple Messagerequester"+#LF$+" with two lines, and two substituted var:  %s : %s","varone","vartwo")
gtk_dialog_run_(*gdialog)
gtk_widget_destroy_(*gdialog)

*gdialog=gtk_message_dialog_new_(hwnd,1,#gtk_message_info,#GTK_Buttons_none,"Simple Messagerequester"+#LF$+" with two lines, and 2 'selfmade' buttons","","")
gtk_dialog_add_button_(*gdialog,#gtk_stock_no,#gtk_response_no)
gtk_dialog_add_button_(*gdialog,#gtk_stock_yes,#gtk_response_yes)
gtk_dialog_run_(*gdialog)
gtk_widget_destroy_(*gdialog)

OpenWindow(0,0,0,300,250,#PB_Window_ScreenCentered,"test")
Delay(1000)

Select gMessageRequester("Messagerequester", "Messagerequester using GTKDialog"+#LF$+#LF$+"2006 by walker "+#LF$,#True,#True,#FALSE,#FALSE);1 or #true to show coresponding button
    Case #gtk_response_ok
    
    Case #gtk_response_cancel    
   
    Case #gtk_response_yes
    
    Case #gtk_response_no
    
    Default
        ;if no buttun is pressed and requester is closed by system-menu
        
EndSelect 

Repeat
    w=WaitWindowEvent()
Until w=#PB_Event_CloseWindow
To compile you must use GTK2 as Subsystem :!:
dracflamloc
Addict
Addict
Posts: 1648
Joined: Mon Sep 20, 2004 3:52 pm
Contact:

Post by dracflamloc »

Thanks. This will come in handy!
Post Reply