1. buttons...
- Posted by Patrick.Barnes at transgrid.com.au Dec 11, 2002
- 428 views
How do I make a button's background a different color? ======================= Patrick Barnes Information Systems Group 201 Elizabeth St, Sydney Patrick.Barnes at tg.nsw.gov.au Ext: 91-3583 Ph:(02) 9284-3583 Mob: 0410 751 044 *********************************************************************** ***********************************************************************
2. Re: buttons...
- Posted by jordah at btopenworld.com Dec 11, 2002
- 417 views
Hi, For this you're best off just drawing the button. ie use owner-drawn buttons, the problem with global classes is that u can never get the perfect time to paint them. below is an example that shows how to make owner drawn buttons. u are responsible for drawing the border(use DrawEdge) --------------------------------------------------------- --File : Owner Drawn Button --Version: 0.0.1 --Date : --Author : Jordah Ferguson --------------------------------------------------------- include win32lib.ew constant BS_OWNERDRAW = #0000000B, WM_DRAWITEM = #002B, ODT_BUTTON = 4 constant xPatBlt = registerw32Function(gdi32,"PatBlt",{C_LONG,C_LONG,C_LONG,C_LONG,C_INT,C_INT} ,C_INT) -- DRAWITEMSTRUCT Structure constant CtlType = 00, CtlID = 04, itemID = 08, itemAction = 12, itemState = 16, hwndItem = 20, hDC = 24, RECT_top = 28, RECT_left = 32, RECT_right = 36, RECT_bottom = 40, itemData = 44 constant Win = create(Window,"Owner drawn Button example",0,Default,Default,100,100,0), Btn = create(Button,"Renzo",Win, 20,20,120,25,BS_OWNERDRAW ) constant clrs = {BrightRed,BrightBlue,BrightGreen,Red,Blue,White,Yellow}, pushed = Gray atom HDC,junk,Brush,OldBrush,lParam ------------------------------------------- procedure w32HEven_Paint(atom id,atom event,sequence params) ------------------------------------------- if params[1] = WM_DRAWITEM then lParam = params[3] if peek4u(lParam + CtlType) = ODT_BUTTON then HDC = peek4u(lParam+hDC) if HDC then Brush = w32Func(xCreateSolidBrush,{clrs[rand(length(clrs))]}) OldBrush = w32Func(xSelectObject,{HDC,Brush}) junk = w32Func(xPatBlt,{HDC,peek4u(lParam + RECT_top), peek4u(lParam + RECT_left), peek4u(lParam + RECT_right), peek4u(lParam + RECT_bottom), PATCOPY}) junk = w32Func(xDeleteObject,{Brush}) junk = w32Func(xReleaseDC,{getHandle(Btn),HDC}) end if returnValue(1) end if end if end procedure setHandler(Win,w32HEvent,routine_id("w32HEven_Paint")) WinMain(Win,Normal) ========================== Enjoy! Jordah Ferguson ----- Original Message ----- From: <Patrick.Barnes at transgrid.com.au> To: "EUforum" <EUforum at topica.com> Sent: Wednesday, December 11, 2002 1:11 AM Subject: buttons... > > How do I make a button's background a different color? > ======================= > Patrick Barnes > Information Systems Group > 201 Elizabeth St, Sydney > Patrick.Barnes at tg.nsw.gov.au > Ext: 91-3583 > Ph:(02) 9284-3583 > Mob: 0410 751 044 > > > *********************************************************************** > > > *********************************************************************** > > > >
3. Re: buttons...
- Posted by jordah at btopenworld.com Dec 11, 2002
- 440 views
----- Original Message ----- From: <Patrick.Barnes at transgrid.com.au> To: "EUforum" <EUforum at topica.com> Subject: RE: buttons... > > Or, if possible: > > copy the way that MS Word and wordpad handle colours.. > |------------|--| > | |\ | | > | \\ | | > | __\\_____ | | > || |_| | |__| > ||---------| |\/| > |------------|--| > (marvel at my ascii skills) > > A button that looks like this, (that odd-shaped thing in the middle is a brush, btw), where the rectangle in the main window is a certain colour, and you can click on the down arrow to choose a different color. On choosing it, a new colour is selected, and that is reflected in the colour of the rectangle. > > -----Original Message----- > From: Barnes Patrick > Sent: Wednesday, 11 December 2002 12:12 > To: EUforum > Subject: buttons... > > > How do I make a button's background a different color? > ======================= > Patrick Barnes > Information Systems Group > 201 Elizabeth St, Sydney > Patrick.Barnes at tg.nsw.gov.au > Ext: 91-3583 > Ph:(02) 9284-3583 > Mob: 0410 751 044 > > > *********************************************************************** > > > *********************************************************************** > > > *********************************************************************** > > > *********************************************************************** > > > >
4. Re: buttons...
- Posted by Pete Lomax <petelomax at blueyonder.co.uk> Dec 11, 2002
- 430 views
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 =3D { "24 24 13 1", " c None", "B c #808080", -- the background ". c #000000", "+ c #E4E4DC", "@ c #BE7579", "# c #C67D81", "$ c #2D2D2D", "% c #8A4D4F", "& c #9E575B", "* c #A75E5F", "=3D c #AF6668", "- c #B66D71", "; c #CD8689", "> c #080808", "BBBBBBBBBBBBBBBBBBBBBBBB", "BBBBBBBBBBBBBBBBBBBBBBBB", "BBBBBBBBBBBBBBBBBBBBBBBB", "BBBBBBBBBBBBBBBBBBBBBBBB", "BBBBBBBBBBBBBBBBBBBBBBBB", "BBBBBBBBBB.........BBBBB", "BBBBBBBBBB.++++++..BBBBB", "BBBBBBBBBB.++++++..BBBBB", "BBBBBBBB...++++++..BBBBB", "BBBBBBBB. at .++++++..BBBBB", "BBB...... at #.++$.+..BBBBB", "BBB.%&*=3D- at #;.+.$+..BBBBB", "BBB.%&*=3D- at #;.++++..BBBBB", "BBB...... at #.+++++..BBBBB", "BBBBBBBB. at .++++++..BBBBB", "BBBBBBBB...++++++..BBBBB", "BBBBBBBBBB.++++....BBBBB", "BBBBBBBBBB.++......BBBBB", "BBBBBBBBBB...>>>>>>BBBBB", "BBBBBBBBBBBBBBBBBBBBBBBB", "BBBBBBBBBBBBBBBBBBBBBBBB", "BBBBBBBBBBBBBBBBBBBBBBBB", "BBBBBBBBBBBBBBBBBBBBBBBB", "BBBBBBBBBBBBBBBBBBBBBBBB"} change the background colour, eg test[3][7..12]=3D"FF0000" -- Red and stick it on the button setBitmap(Button,createDIB(xpmToEuBmp(test))) I would imagine that the drop-down is just a very narrow button next to the normal sized button. There is a simple palette I inherited in the editor, see options.ew Apparently someone is going to post about 2,500 xpm files real soon now. Pete
5. Re: buttons...
- Posted by Dan Moyer <DANIELMOYER at prodigy.net> Dec 12, 2002
- 408 views
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> 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> > > >
6. Re: buttons...
- Posted by Dan Moyer <DANIELMOYER at prodigy.net> Dec 13, 2002
- 433 views
Yes, it does; I ususally scan "inline" email programs for mangling, didn't notice any, must have not looked close enough! Dan ----- Original Message ----- From: <Patrick.Barnes at transgrid.com.au> To: "EUforum" <EUforum at topica.com> Subject: RE: buttons... > > 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] > Sent: Thursday, 12 December 2002 14:59 > To: EUforum > 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) > > ------------------------------------------------------------------ <snip> > > >