func_maxgui_buttons_createbutton.rst 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. .. _func_maxgui_buttons_createbutton:
  2. ============
  3. CreateButton
  4. ============
  5. CreateButton -
  6. Description
  7. ===========
  8. .. code-block:: blitzmax
  9. CreateButton:TGadget(label$,x,y,w,h,group:TGadget,style=BUTTON_PUSH)
  10. Create a Button gadget.
  11. A Button generates an EVENT_GADGETACTION #TEvent whenever it is pushed.
  12. [ @Style | @Meaning
  13. * BUTTON_PUSH | Standard push button.
  14. * BUTTON_CHECKBOX | A check box button that displays a tick when it's state is #True.
  15. * BUTTON_RADIO | A radio button is accompanied by a small circular indicator, filled when it's state is #True.
  16. * BUTTON_OK | Standard push button that is also activated when the user presses the RETURN key.
  17. * BUTTON_CANCEL | Standard push button that is also activated when the user presses the ESCAPE key.
  18. ]
  19. On certain platforms, the BUTTON_PUSH flag can be combined with either BUTTON_CHECKBOX or BUTTON_RADIO to obtain
  20. a button looking similar to standard push-buttons, but mimicking the behaviour of the checkbox or radio button.
  21. See Also: #SetGadgetText, #SetButtonState, #ButtonState and #SetGadgetPixmap.
  22. Parameters
  23. ==========
  24. Return Values
  25. =============
  26. Nothing.
  27. Examples
  28. ========
  29. .. code-block:: blitzmax
  30. ' createbutton.bmx
  31. Import MaxGui.Drivers
  32. Strict
  33. Global window:TGadget = CreateWindow("MaxGUI Buttons",40,40,400,330,Null,WINDOW_TITLEBAR|WINDOW_CLIENTCOORDS)
  34. CreateButton("Std. Button",10,10,120,30,window,BUTTON_PUSH)
  35. CreateButton("OK Button",140,10,120,30,window,BUTTON_OK)
  36. CreateButton("Cancel Button",270,10,120,30,window,BUTTON_CANCEL)
  37. Global panel:TGadget[4]
  38. panel[0]=CreatePanel(10,50,380,60,window,PANEL_GROUP,"Checkbox")
  39. FillPanelWithButtons(panel[0], BUTTON_CHECKBOX, "Checkbox")
  40. panel[1]=CreatePanel(10,120,380,60,window,PANEL_GROUP,"Checkbox (with Push Button Style)")
  41. FillPanelWithButtons(panel[1], BUTTON_CHECKBOX|BUTTON_PUSH, "Toggle")
  42. panel[2]=CreatePanel(10,190,380,60,window,PANEL_GROUP,"Radio Buttons")
  43. FillPanelWithButtons(panel[2], BUTTON_RADIO, "Option ")
  44. panel[3]=CreatePanel(10,260,380,60,window,PANEL_GROUP,"Radio Buttons (with Push Button Style)")
  45. FillPanelWithButtons(panel[3], BUTTON_RADIO|BUTTON_PUSH, "Option")
  46. Repeat
  47. Select WaitEvent()
  48. Case EVENT_WINDOWCLOSE, EVENT_APPTERMINATE
  49. End
  50. Case EVENT_GADGETACTION
  51. Print "EVENT_GADGETACTION~n" + ..
  52. "GadgetText(): ~q" + GadgetText(TGadget(EventSource())) + "~q ~t " + ..
  53. "ButtonState(): "+ ButtonState(TGadget(EventSource()))
  54. EndSelect
  55. Forever
  56. Function FillPanelWithButtons( pPanel:TGadget, pStyle%, pText$ = "Button" )
  57. Local buttonwidth% = (pPanel.width-10)/3
  58. For Local i% = 0 Until 3
  59. CreateButton( pText + " " + (i+1), 5+(i*buttonwidth), 5, buttonwidth-10, 26, pPanel, pStyle )
  60. Next
  61. EndFunction
  62. See Also
  63. ========