It is currently Fri May 24, 2013 2:18 am

All times are UTC + 1 hour




Post new topic Reply to topic  [ 10 posts ] 
Author Message
 Post subject: Display system colors #COLOR_????
PostPosted: Fri Feb 18, 2005 2:17 pm 
Offline
Enthusiast
Enthusiast
User avatar

Joined: Sun Jul 04, 2004 12:15 pm
Posts: 284
Location: Germany
Maybe someone else needs to know, what's behind the #COLOR_???? constants...

Code:
;/ Display system colors
;/ sverson 02/2005

Structure SYSCOLORS
  ColorConst.s
  ColorNumber.l
EndStructure
NewList ColorList.SYSCOLORS()

Procedure InitColorList()
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_3DDKSHADOW" : ColorList()\ColorNumber = 21
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_3DFACE = #COLOR_BTNFACE" : ColorList()\ColorNumber = 15
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_3DHILIGHT = #COLOR_BTNHIGHLIGHT" : ColorList()\ColorNumber = 20
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_3DHIGHLIGHT = #COLOR_BTNHIGHLIGHT" : ColorList()\ColorNumber = 20
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_3DLIGHT" : ColorList()\ColorNumber = 22
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_3DSHADOW = #COLOR_BTNSHADOW" : ColorList()\ColorNumber = 16
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_ACTIVEBORDER" : ColorList()\ColorNumber = 10
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_ACTIVECAPTION" : ColorList()\ColorNumber = 2
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_APPWORKSPACE" : ColorList()\ColorNumber = 12
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_BACKGROUND" : ColorList()\ColorNumber = 1
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_BTNFACE" : ColorList()\ColorNumber = 15
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_BTNHIGHLIGHT" : ColorList()\ColorNumber = 20
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_BTNHILIGHT = #COLOR_BTNHIGHLIGHT" : ColorList()\ColorNumber = 20
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_BTNSHADOW" : ColorList()\ColorNumber = 16
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_BTNTEXT" : ColorList()\ColorNumber = 18
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_CAPTIONTEXT" : ColorList()\ColorNumber = 9
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_DESKTOP = #COLOR_BACKGROUND" : ColorList()\ColorNumber = 1
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_GRADIENTACTIVECAPTION" : ColorList()\ColorNumber = 27
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_GRADIENTINACTIVECAPTION" : ColorList()\ColorNumber = 28
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_GRAYTEXT" : ColorList()\ColorNumber = 17
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_HIGHLIGHT" : ColorList()\ColorNumber = 13
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_HIGHLIGHTTEXT" : ColorList()\ColorNumber = 14
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_HOTLIGHT" : ColorList()\ColorNumber = 26
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_INACTIVEBORDER" : ColorList()\ColorNumber = 11
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_INACTIVECAPTION" : ColorList()\ColorNumber = 3
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_INACTIVECAPTIONTEXT" : ColorList()\ColorNumber = 19
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_INFOBK" : ColorList()\ColorNumber = 24
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_INFOTEXT" : ColorList()\ColorNumber = 23
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_MENU" : ColorList()\ColorNumber = 4
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_MENUTEXT" : ColorList()\ColorNumber = 7
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_SCROLLBAR" : ColorList()\ColorNumber = 0
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_WINDOW" : ColorList()\ColorNumber = 5
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_WINDOWFRAME" : ColorList()\ColorNumber = 6
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_WINDOWTEXT" : ColorList()\ColorNumber = 8
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLORMATCHTOTARGET_EMBEDED" : ColorList()\ColorNumber = 1
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLORONCOLOR" : ColorList()\ColorNumber = 3
EndProcedure

InitColorList()
If OpenWindow(0,10,10,640,CountList(ColorList())*15+1,#PB_Window_ScreenCentered|#PB_Window_SystemMenu,"Display system colors")
  background = GetSysColor_(#COLOR_WINDOW)
  If StartDrawing(WindowOutput())
    DrawingFont(LoadFont(0, "Arial", 8))
    FirstElement(ColorList())
    For a = 0 To CountList(ColorList())-1
      SysColor = GetSysColor_(ColorList()\ColorNumber)
      Box(0,15*a,640,16,RGB(0,0,0))
      Box(1,15*a+1,638,14,RGB(255,255,255))
      Box(300,15*a+2,200,12,SysColor)
      FrontColor(0,0,0)
      BackColor(255,255,255)
      Locate(12,15*a+1)
      DrawText(RSet(Str(ColorList()\ColorNumber),3,"0")+"  "+ColorList()\ColorConst)
      Locate(510,15*a+1)
      DrawText(RSet(Str(SysColor),8,"0")+"  "+RSet(Str(Red(SysColor)),3,"0")+"/"+RSet(Str(Green(SysColor)),3,"0")+"/"+RSet(Str(Blue(SysColor)),3,"0"))
      NextElement(ColorList())
    Next
    StopDrawing()
  EndIf
  Repeat
      EventID.l = WaitWindowEvent()
  Until EventID = #PB_EventCloseWindow
  CloseWindow(0)
EndIf
End


:wink: sverson


Top
 Profile  
 
 Post subject:
PostPosted: Fri Feb 18, 2005 7:05 pm 
Offline
Addict
Addict
User avatar

Joined: Tue Jul 22, 2003 5:02 pm
Posts: 1496
Location: Nantes, France
thanx for this one :wink:

_________________
No programming language is perfect. There is not even a single best language.
There are only languages well suited or perhaps poorly suited for particular purposes. Herbert Mayer


Top
 Profile  
 
 Post subject:
PostPosted: Fri Feb 18, 2005 8:22 pm 
Offline
PureBasic Expert
PureBasic Expert

Joined: Fri Apr 25, 2003 5:24 pm
Posts: 6561
Agreed -- thanks for this! :)

_________________
"Every program has at least one bug and can be shortened by at least one
instruction — from which, by induction, it is evident that every program
can be reduced to one instruction that does not work." - Ken Arnold.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Feb 19, 2005 8:41 am 
Offline
PureBasic Expert
PureBasic Expert
User avatar

Joined: Sat Apr 26, 2003 8:27 am
Posts: 4231
Location: Strasbourg / France
Yes, good idea.
I have added a callback to refresh the window.

Code:
Structure SYSCOLORS
  ColorConst.s
  ColorNumber.l
EndStructure
NewList ColorList.SYSCOLORS()

Procedure InitColorList()
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_3DDKSHADOW" : ColorList()\ColorNumber = 21
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_3DFACE = #COLOR_BTNFACE" : ColorList()\ColorNumber = 15
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_3DHILIGHT = #COLOR_BTNHIGHLIGHT" : ColorList()\ColorNumber = 20
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_3DHIGHLIGHT = #COLOR_BTNHIGHLIGHT" : ColorList()\ColorNumber = 20
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_3DLIGHT" : ColorList()\ColorNumber = 22
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_3DSHADOW = #COLOR_BTNSHADOW" : ColorList()\ColorNumber = 16
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_ACTIVEBORDER" : ColorList()\ColorNumber = 10
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_ACTIVECAPTION" : ColorList()\ColorNumber = 2
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_APPWORKSPACE" : ColorList()\ColorNumber = 12
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_BACKGROUND" : ColorList()\ColorNumber = 1
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_BTNFACE" : ColorList()\ColorNumber = 15
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_BTNHIGHLIGHT" : ColorList()\ColorNumber = 20
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_BTNHILIGHT = #COLOR_BTNHIGHLIGHT" : ColorList()\ColorNumber = 20
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_BTNSHADOW" : ColorList()\ColorNumber = 16
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_BTNTEXT" : ColorList()\ColorNumber = 18
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_CAPTIONTEXT" : ColorList()\ColorNumber = 9
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_DESKTOP = #COLOR_BACKGROUND" : ColorList()\ColorNumber = 1
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_GRADIENTACTIVECAPTION" : ColorList()\ColorNumber = 27
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_GRADIENTINACTIVECAPTION" : ColorList()\ColorNumber = 28
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_GRAYTEXT" : ColorList()\ColorNumber = 17
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_HIGHLIGHT" : ColorList()\ColorNumber = 13
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_HIGHLIGHTTEXT" : ColorList()\ColorNumber = 14
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_HOTLIGHT" : ColorList()\ColorNumber = 26
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_INACTIVEBORDER" : ColorList()\ColorNumber = 11
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_INACTIVECAPTION" : ColorList()\ColorNumber = 3
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_INACTIVECAPTIONTEXT" : ColorList()\ColorNumber = 19
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_INFOBK" : ColorList()\ColorNumber = 24
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_INFOTEXT" : ColorList()\ColorNumber = 23
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_MENU" : ColorList()\ColorNumber = 4
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_MENUTEXT" : ColorList()\ColorNumber = 7
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_SCROLLBAR" : ColorList()\ColorNumber = 0
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_WINDOW" : ColorList()\ColorNumber = 5
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_WINDOWFRAME" : ColorList()\ColorNumber = 6
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_WINDOWTEXT" : ColorList()\ColorNumber = 8
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLORMATCHTOTARGET_EMBEDED" : ColorList()\ColorNumber = 1
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLORONCOLOR" : ColorList()\ColorNumber = 3
EndProcedure

Procedure DrawColors()
  If StartDrawing(WindowOutput())
    DrawingFont(LoadFont(0, "Arial", 8))
    FirstElement(ColorList())
    For a = 0 To CountList(ColorList())-1
      SysColor = GetSysColor_(ColorList()\ColorNumber)
      Box(0,15*a,640,16,RGB(0,0,0))
      Box(1,15*a+1,638,14,RGB(255,255,255))
      Box(300,15*a+2,200,12,SysColor)
      FrontColor(0,0,0)
      BackColor(255,255,255)
      Locate(12,15*a+1)
      DrawText(RSet(Str(ColorList()\ColorNumber),3,"0")+"  "+ColorList()\ColorConst)
      Locate(510,15*a+1)
      DrawText(RSet(Str(SysColor),8,"0")+"  "+RSet(Str(Red(SysColor)),3,"0")+"/"+RSet(Str(Green(SysColor)),3,"0")+"/"+RSet(Str(Blue(SysColor)),3,"0"))
      NextElement(ColorList())
    Next
    StopDrawing()
  EndIf
EndProcedure

Procedure Callback(WindowId, Message, wParam, lParam)
  ReturnValue = #PB_ProcessPureBasicEvents
  If Message = #WM_ERASEBKGND
    DrawColors()
    ReturnValue = 0
  EndIf
  ProcedureReturn ReturnValue
EndProcedure

InitColorList()
If OpenWindow(0,10,10,640,CountList(ColorList())*15+1,#PB_Window_ScreenCentered|#PB_Window_SystemMenu,"Display system colors")
  DrawColors()
  SetWindowCallback(@Callback())
  Repeat
    EventID.l = WaitWindowEvent()
  Until EventID = #PB_EventCloseWindow
  CloseWindow(0)
EndIf
End

_________________
For free libraries and tools, visit my web site (also home of jaPBe V3 and PureFORM).


Top
 Profile  
 
 Post subject:
PostPosted: Sat Feb 19, 2005 11:06 am 
Offline
Enthusiast
Enthusiast
User avatar

Joined: Sun Jul 04, 2004 12:15 pm
Posts: 284
Location: Germany
gnozal wrote:
Yes, good idea.
I have added a callback to refresh the window.


Thanks gonzal! :wink: - I was to lazy to do this :cry:

Here is another one (in german) using a fast asm BrightnessRGB(RGB_Color.l, Delta.w)

Code:
;/ RGB Farbhelligkeit korrigieren  PB 3.92 / ASM
;/ Eine schnelle ASM-Routine zur "om the fly" Korrektur der RGB Farbhelligkeit
;/ BrightnessRGB(RGB_Color.l, Delta.w) Delta -255...255 - andere Werte sind sinnlos
;/ 02/2005 sverson

Enumeration
  #DemoWindow
  #DemoImage
  #DemoImageGeaget
  #ColorTrackBar
  #BrightnesTrackBar
EndEnumeration

Structure SYSCOLORS
  ColorConst.s
  ColorNumber.l
EndStructure
NewList ColorList.SYSCOLORS()

Procedure InitColorList() ;/ Systemfarben
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_3DDKSHADOW" : ColorList()\ColorNumber = GetSysColor_(#COLOR_3DDKSHADOW)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_3DFACE = #COLOR_BTNFACE" : ColorList()\ColorNumber = GetSysColor_(#COLOR_3DFACE)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_3DHILIGHT = #COLOR_BTNHIGHLIGHT" : ColorList()\ColorNumber = GetSysColor_(#COLOR_3DHILIGHT)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_3DHIGHLIGHT = #COLOR_BTNHIGHLIGHT" : ColorList()\ColorNumber = GetSysColor_(#COLOR_3DHIGHLIGHT)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_3DLIGHT" : ColorList()\ColorNumber = GetSysColor_(#COLOR_3DLIGHT)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_3DSHADOW = #COLOR_BTNSHADOW" : ColorList()\ColorNumber = GetSysColor_(#COLOR_3DSHADOW)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_ACTIVEBORDER" : ColorList()\ColorNumber = GetSysColor_(#COLOR_ACTIVEBORDER)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_ACTIVECAPTION" : ColorList()\ColorNumber = GetSysColor_(#COLOR_ACTIVECAPTION)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_APPWORKSPACE" : ColorList()\ColorNumber = GetSysColor_(#COLOR_APPWORKSPACE)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_BACKGROUND" : ColorList()\ColorNumber = GetSysColor_(#COLOR_BACKGROUND)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_BTNFACE" : ColorList()\ColorNumber = GetSysColor_(#COLOR_BTNFACE)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_BTNHIGHLIGHT" : ColorList()\ColorNumber = GetSysColor_(#COLOR_BTNHIGHLIGHT)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_BTNHILIGHT = #COLOR_BTNHIGHLIGHT" : ColorList()\ColorNumber = GetSysColor_(#COLOR_BTNHILIGHT)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_BTNSHADOW" : ColorList()\ColorNumber = GetSysColor_(#COLOR_BTNSHADOW)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_BTNTEXT" : ColorList()\ColorNumber = GetSysColor_(#COLOR_BTNTEXT)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_CAPTIONTEXT" : ColorList()\ColorNumber = GetSysColor_(#COLOR_CAPTIONTEXT)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_DESKTOP = #COLOR_BACKGROUND" : ColorList()\ColorNumber = GetSysColor_(#COLOR_DESKTOP)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_GRAYTEXT" : ColorList()\ColorNumber = GetSysColor_(#COLOR_GRAYTEXT)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_HIGHLIGHT" : ColorList()\ColorNumber = GetSysColor_(#COLOR_HIGHLIGHT)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_HIGHLIGHTTEXT" : ColorList()\ColorNumber = GetSysColor_(#COLOR_HIGHLIGHTTEXT)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_INACTIVEBORDER" : ColorList()\ColorNumber = GetSysColor_(#COLOR_INACTIVEBORDER)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_INACTIVECAPTION" : ColorList()\ColorNumber = GetSysColor_(#COLOR_INACTIVECAPTION)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_INACTIVECAPTIONTEXT" : ColorList()\ColorNumber = GetSysColor_(#COLOR_INACTIVECAPTIONTEXT)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_INFOBK" : ColorList()\ColorNumber = GetSysColor_(#COLOR_INFOBK)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_INFOTEXT" : ColorList()\ColorNumber = GetSysColor_(#COLOR_INFOTEXT)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_MENU" : ColorList()\ColorNumber = GetSysColor_(#COLOR_MENU)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_MENUTEXT" : ColorList()\ColorNumber = GetSysColor_(#COLOR_MENUTEXT)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_SCROLLBAR" : ColorList()\ColorNumber = GetSysColor_(#COLOR_SCROLLBAR)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_WINDOW" : ColorList()\ColorNumber = GetSysColor_(#COLOR_WINDOW)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_WINDOWFRAME" : ColorList()\ColorNumber = GetSysColor_(#COLOR_WINDOWFRAME)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_WINDOWTEXT" : ColorList()\ColorNumber = GetSysColor_(#COLOR_WINDOWTEXT)
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLORONCOLOR" : ColorList()\ColorNumber = GetSysColor_(#COLORONCOLOR)
  ;/ + 3 Demofarben
  AddElement(ColorList()) : ColorList()\ColorConst = "Demo Blue" : ColorList()\ColorNumber = RGB(0,0,128)
  AddElement(ColorList()) : ColorList()\ColorConst = "Demo Green" : ColorList()\ColorNumber = RGB(0,128,0)
  AddElement(ColorList()) : ColorList()\ColorConst = "Demo Red" : ColorList()\ColorNumber = RGB(128,0,0)
EndProcedure

Procedure BrightnessRGB(RGB_Color.l, Delta.w);- RGB farbhelligkeit korrigieren
  Protected ColorBack.l 
  !XOR Eax, Eax         ;/ EAX-Register löschen
  !XOR Ebx, Ebx         ;/ EBX-Register löschen
  !XOR Ecx, Ecx         ;/ ECX-Register löschen
  !MOV BX, Word [Esp+4] ;/ Delta-Wert in BX einlesen
  !MOV Edx, dWord [Esp] ;/ RGB-Farbwert in EDX einlesen
  !MOV AL, DL           ;/ R-Wert nach AL
  !CALL .adddelta       ;/--> DELTA ZU AL (R) ADDIEREN ++
  !MOV CL, AL           ;/ R-Wert in CL zwischenspeichern
  !MOV AL, DH           ;/ G-Wert nach AL
  !CALL .adddelta       ;/--> DELTA ZU AL (G) ADDIEREN ++
  !MOV ch, AL           ;/ G-Wert in CH zwischenspeichern
  !BSWAP Edx            ;/ B-Wert via BYTESWAP in DH zugänglich machen
  !MOV AL, DH           ;/ G-Wert nach AL
  !CALL .adddelta       ;/--> DELTA ZU AL (B) ADDIEREN ++
  !MOV DH, AL           ;/ G-Wert nach DH zurückschreiben
  !BSWAP Edx            ;/ G-Wert via BYTESWAP wieder an richtige Position bringen
  !MOV dx, cx           ;/ R und G Wert aus Zwischenspeicher CX wieder in DX schreiben
  !JMP .ready           ;/==> FARBKORREKTUR BEENDET ++
  !.adddelta:           ;/ ++ DELTA ZU AL ADDIEREN ++
  !ADD AX, BX           ;/ Delta aus BX zu AX addieren
  !BT AX, 15            ;/ auf Negativwert testen
  !JC .negativ          ;/==> NEUER WERT KLEINER NULL ++
  !CMP AX, $FF          ;/ auf Maximalwert testen
  !JBE .inrange         ;/==> NEUER ZWISCHEN 0 UND 255 ++
  !.bigger:             ;/ ++ NEUER WERT GRÖSSER 255 ++
  !MOV AX, $00FF        ;/ AX auf 255 begrenzen
  !JMP .inrange         ;/==> WERT IN DEN GRENZEN ++
  !.negativ:            ;/ ++ NEUER WERT KLEINER NULL ++
  !XOR Eax, Eax         ;/ AX auf 0 begrenzen
  !.inrange:            ;/ ++ WERT IN DEN GRENZEN ++
  !RET                  ;/ Rücksprung aus Makro
  !.ready:              ;/ ++ FARBKORREKTUR BEENDET ++
  !MOV [Esp+6], Edx     ;/ Korrigierten RGB-Wert über ColorBack ausgeben
  ProcedureReturn ColorBack
EndProcedure

Procedure UpdateImage(ITitle$,IColor.l,iDelta.w);/ Image aktualisieren
  UseImage(#DemoImage)
  StartDrawing(ImageOutput())
  newColor = BrightnessRGB(IColor,iDelta)
  Box(0,0,280,200,IColor)
  Box(78,48,124,104,RGB(255,255,255))
  Box(79,49,122,102,RGB(0,0,0))
  Box(80,50,120,100,newColor)
  DrawingMode(1)
  FrontColor(255,255,255)
  Locate(10, 10)
  DrawText(ITitle$)
  Locate(90, 65)
  DrawText("R"+RSet(Str(Red(newColor)),3,"0")+"G"+RSet(Str(Green(newColor)),3,"0")+"b"+RSet(Str(Blue((newColor))),3,"0"))
  Locate(90, 80)
  DrawText("delta: "+Str(iDelta))
  Locate(90, 100)
  FrontColor(0,0,0)
  DrawText("delta: "+Str(iDelta))
  Locate(90, 115)
  DrawText("R"+RSet(Str(Red(newColor)),3,"0")+"G"+RSet(Str(Green(newColor)),3,"0")+"b"+RSet(Str(Blue((newColor))),3,"0"))
  Locate(10, 175)
  DrawText(ITitle$)
  StopDrawing()
EndProcedure

If OpenWindow(#DemoWindow,0,0,320,240,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"Helligkeitsregler") And CreateGadgetList(WindowID(#DemoWindow))
  If CreateImage(#DemoImage, 280, 200)
    InitColorList()
    LastElement(ColorList())
    UpdateImage(ColorList()\ColorConst,ColorList()\ColorNumber,0)
    ImageGadget(#DemoImageGeaget,5,5,280,200,UseImage(#DemoImage),#PB_Image_Border)
    TrackBarGadget(#BrightnesTrackBar, 5, 215, 280, 20,0,510)
    SetGadgetState(#BrightnesTrackBar,255)
    TrackBarGadget(#ColorTrackBar, 295, 5, 20, 200,1,CountList(ColorList()),#PB_TrackBar_Vertical)
    SetGadgetState(#ColorTrackBar,CountList(ColorList()))
    Repeat :
      WinEvent = WaitWindowEvent()
      Select WinEvent
        Case #PB_EventGadget
          SelectElement(ColorList(),GetGadgetState(#ColorTrackBar)-1)
          UpdateImage(ColorList()\ColorConst,ColorList()\ColorNumber,GetGadgetState(#BrightnesTrackBar)-255)
          SetGadgetState(#DemoImageGeaget,UseImage(#DemoImage))
      EndSelect
    Until WinEvent = #PB_Event_CloseWindow
  EndIf
EndIf
End


:wink: sverson


Top
 Profile  
 
 Post subject: Re: Display system colors #COLOR_????
PostPosted: Tue Apr 09, 2013 10:49 pm 
Offline
User
User

Joined: Sun May 01, 2011 3:09 am
Posts: 40
Location: Northern California
I know this topic is over 8 years old but these look interesting.

Why don't any of them run?

Bill


Top
 Profile  
 
 Post subject: Re: Display system colors #COLOR_????
PostPosted: Wed Apr 10, 2013 2:01 am 
Offline
Enthusiast
Enthusiast

Joined: Tue Oct 09, 2007 2:15 am
Posts: 237
Quote:
this topic is over 8 years old


Thats the answer ...

May you should use PB3.3 or 3.9x to run these codes without changes that fits to the actual PB Version.

_________________
English is not my native language...
ImageImageImage


Top
 Profile  
 
 Post subject: Re: Display system colors #COLOR_????
PostPosted: Wed Apr 10, 2013 2:03 am 
Offline
User
User

Joined: Fri Apr 20, 2012 8:09 pm
Posts: 11
older compiler was used, here is a copy with a few comments on the changes:
Code:
Structure SYSCOLORS
  ColorConst.s
  ColorNumber.l
EndStructure
Global NewList ColorList.SYSCOLORS()


Procedure InitColorList()
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_3DDKSHADOW" : ColorList()\ColorNumber = 21
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_3DFACE = #COLOR_BTNFACE" : ColorList()\ColorNumber = 15
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_3DHILIGHT = #COLOR_BTNHIGHLIGHT" : ColorList()\ColorNumber = 20
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_3DHIGHLIGHT = #COLOR_BTNHIGHLIGHT" : ColorList()\ColorNumber = 20
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_3DLIGHT" : ColorList()\ColorNumber = 22
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_3DSHADOW = #COLOR_BTNSHADOW" : ColorList()\ColorNumber = 16
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_ACTIVEBORDER" : ColorList()\ColorNumber = 10
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_ACTIVECAPTION" : ColorList()\ColorNumber = 2
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_APPWORKSPACE" : ColorList()\ColorNumber = 12
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_BACKGROUND" : ColorList()\ColorNumber = 1
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_BTNFACE" : ColorList()\ColorNumber = 15
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_BTNHIGHLIGHT" : ColorList()\ColorNumber = 20
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_BTNHILIGHT = #COLOR_BTNHIGHLIGHT" : ColorList()\ColorNumber = 20
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_BTNSHADOW" : ColorList()\ColorNumber = 16
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_BTNTEXT" : ColorList()\ColorNumber = 18
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_CAPTIONTEXT" : ColorList()\ColorNumber = 9
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_DESKTOP = #COLOR_BACKGROUND" : ColorList()\ColorNumber = 1
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_GRADIENTACTIVECAPTION" : ColorList()\ColorNumber = 27
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_GRADIENTINACTIVECAPTION" : ColorList()\ColorNumber = 28
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_GRAYTEXT" : ColorList()\ColorNumber = 17
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_HIGHLIGHT" : ColorList()\ColorNumber = 13
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_HIGHLIGHTTEXT" : ColorList()\ColorNumber = 14
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_HOTLIGHT" : ColorList()\ColorNumber = 26
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_INACTIVEBORDER" : ColorList()\ColorNumber = 11
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_INACTIVECAPTION" : ColorList()\ColorNumber = 3
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_INACTIVECAPTIONTEXT" : ColorList()\ColorNumber = 19
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_INFOBK" : ColorList()\ColorNumber = 24
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_INFOTEXT" : ColorList()\ColorNumber = 23
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_MENU" : ColorList()\ColorNumber = 4
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_MENUTEXT" : ColorList()\ColorNumber = 7
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_SCROLLBAR" : ColorList()\ColorNumber = 0
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_WINDOW" : ColorList()\ColorNumber = 5
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_WINDOWFRAME" : ColorList()\ColorNumber = 6
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_WINDOWTEXT" : ColorList()\ColorNumber = 8
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLORMATCHTOTARGET_EMBEDED" : ColorList()\ColorNumber = 1
  AddElement(ColorList()) : ColorList()\ColorConst = "#COLORONCOLOR" : ColorList()\ColorNumber = 3
EndProcedure

Procedure DrawColors()
  loadfntid=LoadFont(#PB_Any, "Arial", 8) ; moved this to outside start drawing
  If StartDrawing(WindowOutput(0))
    DrawingFont(loadfntid) ; got the font id out of here
    FirstElement(ColorList())
    For a = 0 To ListSize(ColorList())-1 ; replace countlist
      SysColor = GetSysColor_(ColorList()\ColorNumber)
      Box(0,15*a,640,16,RGB(0,0,0))
      Box(1,15*a+1,638,14,RGB(255,255,255))
      Box(300,15*a+2,200,12,SysColor)
      FrontColor(RGB(0,0,0)) ; add RGB()
      BackColor(RGB(255,255,255)); add RGB()
     ; Locate(12,15*a+1); add this to next line
      DrawText(12,15*a+1,RSet(Str(ColorList()\ColorNumber),3,"0")+"  "+ColorList()\ColorConst)
      ;Locate(510,15*a+1);add this to next line
      DrawText(510,15*a+1,RSet(Str(SysColor),8,"0")+"  "+RSet(Str(Red(SysColor)),3,"0")+"/"+RSet(Str(Green(SysColor)),3,"0")+"/"+RSet(Str(Blue(SysColor)),3,"0"))
      NextElement(ColorList())
    Next
    StopDrawing()
  EndIf
EndProcedure

Procedure Callback(WindowId, Message, wParam, lParam)
  ReturnValue = #PB_ProcessPureBasicEvents
  If Message = #WM_ERASEBKGND
    DrawColors()
    ReturnValue = 0
  EndIf
  ProcedureReturn ReturnValue
EndProcedure

InitColorList()
If OpenWindow(0,10,10,640,ListSize(ColorList())*15+1,"Display system colors",#PB_Window_ScreenCentered|#PB_Window_SystemMenu) ; changed title postion and deleted countilst
  DrawColors()
  SetWindowCallback(@Callback())
  Repeat
    EventID.l = WaitWindowEvent()
  Until EventID = #PB_Event_CloseWindow;#PB_EventCloseWindow
  CloseWindow(0)
EndIf
End

just fixed based on the errors that the compiler was giving me.


Top
 Profile  
 
 Post subject: Re: Display system colors #COLOR_????
PostPosted: Wed Apr 10, 2013 2:15 am 
Offline
Enthusiast
Enthusiast

Joined: Tue Mar 21, 2006 12:31 am
Posts: 371
I'd replace

LoadFont(#PB_Any, "Arial", 8)

with;

LoadFont(0, "Arial", 8)

or fix up the rows height. :p

_________________
ʽʽSuccess is almost totally dependent upon drive and persistence. The extra energy required to make another effort or try another approach is the secret of winning.ʾʾ --Dennis Waitley


Top
 Profile  
 
 Post subject: Re: Display system colors #COLOR_????
PostPosted: Wed Apr 10, 2013 2:45 am 
Offline
User
User

Joined: Sun May 01, 2011 3:09 am
Posts: 40
Location: Northern California
Thanks, normeous, Thunder.

The errors thrown by 5.11 were all about "ColorList() [not being] a function, list, map, array, or macro" which made no sense. Didn't occur to me to look further.

Bill


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 10 posts ] 

All times are UTC + 1 hour


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  

 


Powered by phpBB © 2008 phpBB Group
subSilver+ theme by Canver Software, sponsor Sanal Modifiye