Code archives/BlitzPlus Gui/Determine Text Selection Color
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
| Requires MaxGUI on Linux, and the following files to be in the same directory: flcolor.cpp: #include <FL/Fl.H>
extern "C" {
unsigned fl_get_color( Fl_Color i ){
return Fl::get_color( i );
}
}color.m:#include <AppKit/AppKit.h>
void NSGetTextSelectionColor( int* red, int* green, int* blue ){
float r, g, b;
NSColor* c = [[NSColor selectedTextBackgroundColor] colorUsingColorSpaceName:NSCalibratedRGBColorSpace];
[c getRed:&r green:&g blue:&b alpha:NULL];
*red = (int)(255 * r);
*green = (int)(255 * g);
*blue = (int)(255 * b);
}The main source file is found below: | |||||
Strict ' Sample App Local red:Byte, green:Byte, blue:Byte GetSelectionColor( red, green, blue ) Print "Selection Color: RGB( " + red + ", " + green + ", " + blue + " )" End ' Selection Color Function ?Win32 Import Pub.Win32 Extern "win32" Function GetSysColor:Int( nIndex:Int ) EndExtern ?MacOS Import "color.m" Extern "C" Function NSGetTextSelectionColor( red:Int Ptr, green:Int Ptr, blue:Int Ptr ) EndExtern ?Linux Import MaxGUI.FLTKMaxGUI Import "flcolor.cpp" Extern "C" Function fl_get_color( color ) EndExtern ? Function GetSelectionColor( pRed:Byte Var, pGreen:Byte Var, pBlue:Byte Var ) ?Win32 Local tmpColour:Int = GetSysColor(COLOR_HIGHLIGHT) pRed = tmpColour & $FF pGreen = (tmpColour Shr 8) & $FF pBlue = (tmpColour Shr 16) & $FF ?MacOs Local red, green, blue NSGetTextSelectionColor( Varptr red, Varptr green, Varptr blue ) pRed = red pGreen = green pBlue = blue ?Linux Local color = fl_get_color( 15 ) 'FL_SELECTION_COLOR: 15 pRed = color Shr 24 pGreen = (color Shr 16) & $FF pBlue = (color Shr 8) & $FF ? EndFunction |
Comments
None.
Code Archives Forum