RE: buttons...
- Posted by Patrick.Barnes at transgrid.com.au Dec 12, 2002
- 423 views
This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_000_01C2A19B.ADABB770 Does this code work? It's in an attachment because I think the last one got mangled by the email system. -----Original Message----- From: Dan Moyer [mailto:DANIELMOYER at prodigy.net] Subject: Re: buttons... Fails for me on click the down button & either select or cancel color selection, Test\buttons\butt1.exw:57 in procedure getColor() slice ends past end of sequence (13 > 11) Dan Moyer ----- Original Message ----- From: <Patrick.Barnes at transgrid.com.au> To: "EUforum" <EUforum at topica.com> Sent: Wednesday, December 11, 2002 5:44 PM Subject: RE: buttons... > > I managed this: > ------------------------------------------------------------------ > include win32lib.ew > > constant win = create(Window, "Test", 0, Default, Default, 100, 100, 0), > color_button = create(PictureButton, "", win, 30, 10, 24, 24,0), > more_button = create(PictureButton, "", win, 53, 10, 8, 24,0) > > > function bgr( atom col) > return rgb( and_bits(col, #0000FF), and_bits(col, #00FF00) / 256, and_bits(col, #FF0000) / (256*256) ) > end function > > sequence fontxpm fontxpm ={"24 24 4 1", > "2 c #C0C0C0", > "3 c #000080", > "4 c #808080", > "5 c #000000", > "222222222222222222222222", > "222222222222222222222222", > "222222222222222222222222", > "222222222222222222222222", > "222222222223222222222222", > "222222222243422222222222", > "222222222233322222222222", > "222222222433342222222222", > "222222222332332222222222", > "222222224322334222222222", > "222222223333333222222222", > "222222243222233422222222", > "222222233222243322222222", > "222222432222243342222222", > "222223333222333333222222", > "222222222222222222222222", > "222225555555555555555222", > "222225555555555555555222", > "222225555555555555555222", > "222225555555555555555222", > "222222222222222222222222", > "222222222222222222222222", > "222222222222222222222222", > "222222222222222222222222"} > > global constant downxpm ={"7 20 2 1", > "2 c #C0C0C0", > "3 c #000000", > "2222222","2222222","2222222", > "2222222","2222222","2222222", > "2222222","2222222","2222222", > "2333332","2233322","2223222", > "2222222","2222222","2222222", > "2222222","2222222","2222222", > "2222222","2222222"} > > > atom nowcolor nowcolor = #000000 > procedure getColor(integer ID, integer Event, object params) > nowcolor = bgr( getColorDialog(win, nowcolor) ) > fontxpm[5][8..13] = sprintf( "%06x", nowcolor) > setBitmap(color_button,createDIB(xpmToEuBmp(fontxpm))) > end procedure > > procedure setColor(integer ID, integer Event, object params) > setWindowBackColor(win, nowcolor) > end procedure > > setBitmap(color_button,createDIB(xpmToEuBmp(fontxpm))) > setBitmap(more_button,createDIB(xpmToEuBmp(downxpm))) > setHandler(more_button, w32HClick, routine_id("getColor")) > setHandler(color_button, w32HClick, routine_id("setColor")) > > > WinMain(win, Normal) > ------------------------------------------------------------------ > > > -----Original Message----- > From: Pete Lomax [mailto:petelomax at blueyonder.co.uk] > Sent: Wednesday, 11 December 2002 21:12 > To: EUforum > Subject: Re: buttons... > > > On Wed, 11 Dec 2002 12:34:46 +1100, Patrick.Barnes at transgrid.com.au > wrote: > > >copy the way that MS Word and wordpad handle colours.. > ... > >How do I make a button's background a different color? > > Use an xpm with a solid background, eg > sequence test test = { <snip> > > *********************************************************************** *********************************************************************** ------_=_NextPart_000_01C2A19B.ADABB770 Content-Type: application/octet-stream; name="colorbtn.exw" Content-Disposition: attachment; filename="colorbtn.exw" include win32lib.ew constant win = create(Window, "Test", 0, Default, Default, 400, 400, 0), color_button = create(PictureButton, "", win, 30, 10, 24, 24,0), cdown_button = create(PictureButton, "", win, 53, 10, 8, 24,0) function bgr( atom col) return rgb( and_bits(col, #FF0000) / (256*256), and_bits(col, #00FF00) / 256, and_bits(col, #0000FF) ) end function sequence fontxpm fontxpm ={"24 24 4 1", "2 c #C0C0C0", "3 c #000080", "4 c #808080", "5 c #000000", "222222222222222222222222", "222222222222222222222222", "222222222222222222222222", "222222222222222222222222", "222222222223222222222222", "222222222243422222222222", "222222222233322222222222", "222222222433342222222222", "222222222332332222222222", "222222224322334222222222", "222222223333333222222222", "222222243222233422222222", "222222233222243322222222", "222222432222243342222222", "222223333222333333222222", "222222222222222222222222", "222225555555555555555222", "222225555555555555555222", "222225555555555555555222", "222225555555555555555222", "222222222222222222222222", "222222222222222222222222", "222222222222222222222222", "222222222222222222222222"} global constant downxpm ={"7 20 2 1", "2 c #C0C0C0", "3 c #000000", "2222222","2222222","2222222", "2222222","2222222","2222222", "2222222","2222222","2222222", "2333332","2233322","2223222", "2222222","2222222","2222222", "2222222","2222222","2222222", "2222222","2222222"} atom nowcolor nowcolor = #000000 procedure getColor(integer ID, integer Event, object params) nowcolor = bgr( getColorDialog(win, bgr(nowcolor) ) ) fontxpm[5][8..13] = sprintf( "%06x", nowcolor) setBitmap(color_button,createDIB(xpmToEuBmp(fontxpm))) end procedure procedure setColor(integer ID, integer Event, object params) setWindowBackColor(win, bgr(nowcolor)) end procedure procedure setRandColor(integer ID, integer Event, object params) setWindowBackColor(win, rand( #FFFFFF ) ) end procedure setBitmap(color_button,createDIB(xpmToEuBmp(fontxpm))) setBitmap(cdown_button,createDIB(xpmToEuBmp(downxpm))) setHandler(cdown_button, w32HClick, routine_id("getColor")) setHandler(color_button, w32HClick, routine_id("setColor")) setHandler(win, w32HClick, routine_id("setRandColor") ) WinMain(win, Normal) ------_=_NextPart_000_01C2A19B.ADABB770--