Page 1 of 1

Display system colors #COLOR_????

Posted: Fri Feb 18, 2005 2:17 pm
by sverson
Maybe someone else needs to know, what's behind the #COLOR_???? constants...

Code: Select all

;/ 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

Posted: Fri Feb 18, 2005 7:05 pm
by Flype
thanx for this one :wink:

Posted: Fri Feb 18, 2005 8:22 pm
by PB
Agreed -- thanks for this! :)

Posted: Sat Feb 19, 2005 8:41 am
by gnozal
Yes, good idea.
I have added a callback to refresh the window.

Code: Select all

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

Posted: Sat Feb 19, 2005 11:06 am
by sverson
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: Select all

;/ 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

Re: Display system colors #COLOR_????

Posted: Tue Apr 09, 2013 10:49 pm
by offsides
I know this topic is over 8 years old but these look interesting.

Why don't any of them run?

Bill

Re: Display system colors #COLOR_????

Posted: Wed Apr 10, 2013 2:01 am
by Bisonte
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.

Re: Display system colors #COLOR_????

Posted: Wed Apr 10, 2013 2:03 am
by normeus
older compiler was used, here is a copy with a few comments on the changes:

Code: Select all

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.

Re: Display system colors #COLOR_????

Posted: Wed Apr 10, 2013 2:15 am
by Thunder93
I'd replace

LoadFont(#PB_Any, "Arial", 8)

with;

LoadFont(0, "Arial", 8)

or fix up the rows height. :p

Re: Display system colors #COLOR_????

Posted: Wed Apr 10, 2013 2:45 am
by offsides
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

Re: Display system colors #COLOR_????

Posted: Sat Sep 29, 2018 12:17 am
by DeanH
I have updated the colour list, adding additional constants as listed in PureBasic's Structure Viewer. The display window is wider and taller. The RGB components of each colour are separated more widely. Font changed to Verdana to improve readability.

Code: Select all

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_ADJ_MAX" : ColorList()\ColorNumber = 100
	AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_ADJ_MIN" : ColorList()\ColorNumber = -100
	AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_ALTERNATEBTNFACE" : ColorList()\ColorNumber = 25
	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_MENUBAR" : ColorList()\ColorNumber = 30
	AddElement(ColorList()) : ColorList()\ColorConst = "#COLOR_MENUHILIGHT" : ColorList()\ColorNumber = 29
	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()
	fntid=LoadFont(#PB_Any,"Verdana",8) ; moved this to outside start drawing
	If StartDrawing(WindowOutput(0))
		DrawingFont(FontID(fntid)) ; got the font id out of here
		a=0
		w=WindowWidth(0)
		ForEach ColorList()
			SysColor = GetSysColor_(ColorList()\ColorNumber)
			Box(0,15*a,w,16,#Black)
			Box(1,15*a+1,w-2,14,#White)
			Box(360,15*a+2,200,12,SysColor)
			FrontColor(#Black)
			BackColor(#White)
			DrawText(12,15*a+1,RSet(Str(ColorList()\ColorNumber),3,"0")+"  "+ColorList()\ColorConst)
			DrawText(570,15*a+1,RSet(Str(SysColor),10,"0")+"     "+RSet(Str(Red(SysColor)),3,"0")+" / "+RSet(Str(Green(SysColor)),3,"0")+" / "+RSet(Str(Blue(SysColor)),3,"0"))
			a+1
		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,760,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

Re: Display system colors #COLOR_????

Posted: Mon Oct 01, 2018 1:59 pm
by ebs
@DeanH,

That's very handy- thank you!

Regards,
Eric