[futurebasic] Re: [FB] Is There a Way to Color Buttons and Non-Static Edit Fields

Message: < previous - next > : Reply : Subscribe : Cleanse
Home   : May 2012 : Group Archive : Group : All Groups

From: "Jan M. Hollis" <jan.mike.hollis@...>
Date: Tue, 08 May 2012 07:19:39 -0500 (CDT)
 
 Ken:

Thanks for your impressive program which is not as simple as I had hoped.
 What is preventing me from typing into this non-static edit field?

 Cheers,
 Mike (aka Jan M. Hollis)
 
 

No man knows how bad he is until he has tried very hard to be good.

-- C.S. Lewis in Mere Christianity --

On 05/07/12, Ken Shmidheiser wrote:

Jan asked:

> Also, on a non-static edit field, is there any simple way to color it while active? My non-static
> fields resist all attempts to change it from white to any color


Jan,

Try this to change change the edit field color.

Ken


begin enum
_mainWindow
_rgbColorField
end enum

local fn DoColorFromString( colorStr as Str255 )
'~'1
dim as ControlFontStyleRec tfs
dim as RGBColor backRGB, foreRGB
dim as long r, g, b
dim as Boolean @ bool : bool = _true

r = 0 : g = 0 : b = 0
// Create individual color table components
select ( colorStr )
case "Black" : r = 0 : g = 0 : b = 0
case "Brown" : r = 60000 : g = 40000 : b = 20000
case "Red" : r = 65535 : g = 0 : b = 0
case "Orange" : r = 65535 : g = 30000 : b = 0
case "Yellow" : r = 65535 : g = 65535 : b = 0
case "Green" : r = 0 : g = 65535 : b = 0
case "Blue" : r = 0 : g = 0 : b = 65535
case "Violet" : r = 65535 : g = 0 : b = 65535
case "Gray" : r = 50000 : g = 50000 : b = 50000
case "White" : r = 65535 : g = 65535 : b = 65535
end select

backRGB.red = r : backRGB.green = g : backRGB.blue = b

tfs.flags = _kControlUseBackColorMask + _kControlUseForeColorMask + _kControlUseSizeMask
if ( colorStr = "White" ) or ( colorStr = "Yellow" ) or ( colorStr = "Green" )
foreRGB.red = 0 : foreRGB.green = 0 : foreRGB.blue = 0
else
foreRGB.red = 65535 : foreRGB.green = 65535 : foreRGB.blue = 65535
end if
tfs.backColor = backRGB : tfs.foreColor = foreRGB : tfs.size = 16

fn SetButtonFontStyle( _rgbColorField, tfs )
fn SetButtonData( _rgbColorField, _kControlEditTextPart, _kControlEditTextLockedTag, sizeof( Boolean ), @bool )
fn SetButtonTextString( _rgbColorField, "Click me to Test" )
end fn

local fn BuildWindow
'~'1
dim as ControlFontStyleRec tfs
dim as RGBColor backRGB, foreRGB
dim as WindowAttributes wa
dim as Rect r
dim as Boolean @ bool : bool = _true

wa = _kWindowCloseBoxAttribute + _kWindowCollapseBoxAttribute

SetRect( @r, 0, 0, 300, 150 )
appearance window 1, "Color Edit Field", @r,_kDocumentWindowClass, wa

SetRect( @r, 20, 20, 280, 130 )
edit field _rgbColorField,,@r,,_noFramedNoCR

// Set flags to use
tfs.flags = _kControlUseBackColorMask + _kControlUseForeColorMask + _kControlUseSizeMask + _kControlUseJustMask

// Set background color to black
backRGB.red = 0 : backRGB.green = 0 : backRGB.blue = 0

// Set foreground color to white
foreRGB.red = 65535 : foreRGB.green = 65535 : foreRGB.blue = 65535

// Apply color flags; set font size to 14 point; apply center justification
tfs.backColor = backRGB : tfs.foreColor = foreRGB : tfs.size = 16 : tfs.just = _teJustCenter
fn SetButtonFontStyle( _rgbColorField, tfs )
fn SetButtonData( _rgbColorField, _kControlEditTextPart, _kControlEditTextLockedTag, sizeof( Boolean ), @bool )
fn SetButtonTextString( _rgbColorField, "Click me to Test" )
fn SetButtonData( _rgbColorField, _kControlButtonPart, _kControlEditTextLockedTag, sizeof( Boolean ), @bool )
end fn

local fn DoDialog
'~'1
dim as short ev, id
dim as Str15 randomColor(10)

ev = dialog (0)
id = dialog (ev)

select case ( ev )
case _wndClick : window id
case _wndClose : end
case _btnClick
select ( id )
case _rgbColorField
randomColor(1) = "Black"
randomColor(2) = "Brown"
randomColor(3) = "Red"
randomColor(4) = "Orange"
randomColor(5) = "Yellow"
randomColor(6) = "Green"
randomColor(7) = "Blue"
randomColor(8) = "Violet"
randomColor(9) = "Gray"
randomColor(10) = "White"
fn DoColorFromString( randomColor( rnd(10) ) )
end select
end select
end fn

on dialog fn DoDialog

randomize

fn BuildWindow

do
HandleEvents
until gFBQuit




--
To unsubscribe, send ANY message to: futurebasic-unsubscribe@...
To access the list archives, go to: http://freegroups.net/groups/futurebasic/