wxEuphoria - set_back_color()

new topic     » topic index » view thread      » older message » newer message

If in the 2nd last line, you change color2 to color1, a bug happens.
You get black.
Is this a bug in my program? Or in wxEuphoria?

constant PROGRAM_TITLE = "set_back_color() bug"

without warning
include wxEuphoria.e
include wxSizer.e
include wxText.e
include wxButton.e
include wxCheckBox.e
include wxGraphics.e

constant
 frameWin = create(wxFrame,{0,-1,PROGRAM_TITLE,-1,-1,300,300}),
 Win = create(wxPanel,{frameWin}),
 boxWin = create(wxBoxSizer,{wxVERTICAL})
set_sizer(Win,boxWin)

constant
 color1 = create(wxColour,{255,120,120}),
 color2 = create(wxColour,{255,0,255}),
 pnl1 = create(wxPanel,{Win}),
 pnl2 = create(wxPanel,{Win}),
 box1 = create(wxBoxSizer,{wxVERTICAL}),
 box2 = create(wxBoxSizer,{wxVERTICAL}),
 lbl1 = create(wxStaticText,{pnl1,-1,"panel 1"}),
 lbl2 = create(wxStaticText,{pnl2,-1,"panel 2"}),
 chkColor = create(wxCheckBox,{Win,-1,"Color"}),
 btnColor = create(wxButton,{Win,-1,"Change Color"})

set_sizer(pnl1,box1)
set_sizer(pnl2,box2)
add_sizer_to_sizer(boxWin,box1,1,wxGROW,0)
add_sizer_to_sizer(boxWin,box2,1,wxGROW,0)
add_window_to_sizer(box1,pnl1,1,wxGROW,0)
add_window_to_sizer(box2,pnl2,1,wxGROW,0)
add_window_to_sizer(boxWin,chkColor,0,wxGROW,0)
add_window_to_sizer(boxWin,btnColor,0,wxGROW,0)
----------------------------
procedure onClick_chkColor(atom this,atom event_type,atom id,atom event)
  if get_checked(chkColor) then
    set_back_color(pnl1,color1)
    set_back_color(pnl2,color1)
  else
    set_back_color(pnl1,color2)
    set_back_color(pnl2,color2)
  end if
  refresh_window(pnl1)
  refresh_window(pnl2)
end procedure
set_event_handler({frameWin,chkColor},get_id(chkColor),
 wxEVT_COMMAND_CHECKBOX_CLICKED,routine_id("onClick_chkColor"))
----------------------------
procedure onClick_btnColor(atom this,atom event_type,atom id,atom event)
  if get_checked(chkColor) then
    set_checked(chkColor,0)
    set_back_color(pnl1,color2)
    set_back_color(pnl2,color2)
  else
    set_checked(chkColor,1)
    set_back_color(pnl1,color1)
    set_back_color(pnl2,color1)
  end if
  refresh_window(pnl1)
  refresh_window(pnl2)
end procedure
set_event_handler({frameWin,btnColor},get_id(btnColor),
 wxEVT_COMMAND_BUTTON_CLICKED,routine_id("onClick_btnColor"))
----------------------------
set_back_color(pnl1,color1)
set_back_color(pnl2,color2)  -- Change this to color1 and a bug happens.
wxMain(frameWin)


new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu