Add ColorUI
This commit is contained in:
parent
f8d234dd29
commit
ef45f64fe9
79
ColorUI.cpp
Normal file
79
ColorUI.cpp
Normal file
@ -0,0 +1,79 @@
|
||||
#include "ColorUI.h"
|
||||
#include <windows.h>
|
||||
|
||||
namespace _ColorUI_Internal_Namespace
|
||||
{
|
||||
|
||||
class _auto_init_console_info_class
|
||||
{
|
||||
public:
|
||||
_auto_init_console_info_class()
|
||||
{
|
||||
hout=GetStdHandle(STD_OUTPUT_HANDLE);
|
||||
CONSOLE_SCREEN_BUFFER_INFO tinfo;
|
||||
GetConsoleScreenBufferInfo(hout,&tInfo);
|
||||
color=tinfo.wAttributes;
|
||||
}
|
||||
HANDLE hout;
|
||||
WORD color;
|
||||
}_auto_init_console_info_obj;
|
||||
|
||||
void cprint(ConsoleColor FrontColor,ConsoleColor BackColor)
|
||||
{
|
||||
int iFront=0;
|
||||
int iBack=0;
|
||||
switch(FrontColor)
|
||||
{
|
||||
case ConsoleColor::black:
|
||||
iFront=0;break;
|
||||
case ConsoleColor::blue:
|
||||
iFront=FOREGROUND_BLUE;break;
|
||||
case ConsoleColor::lightblue:
|
||||
iFront=FOREGROUND_GREEN | FOREGROUND_BLUE;break;
|
||||
case ConsoleColor::green:
|
||||
iFront=FOREGROUND_GREEN;break;
|
||||
case ConsoleColor::purple:
|
||||
iFront=FOREGROUND_RED |FOREGROUND_BLUE;break;
|
||||
case ConsoleColor::red:
|
||||
iFront=FOREGROUND_RED;break;
|
||||
case ConsoleColor::white:
|
||||
iFront=FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED; break;
|
||||
case ConsoleColor::yellow:
|
||||
iFront=FOREGROUND_RED | FOREGROUND_GREEN;break;
|
||||
}
|
||||
switch(BackColor)
|
||||
{
|
||||
case ConsoleColor::black:
|
||||
iBack=0;break;
|
||||
case ConsoleColor::blue:
|
||||
iBack=BACKGROUND_BLUE;break;
|
||||
case ConsoleColor::lightblue:
|
||||
iBack=BACKGROUND_GREEN | BACKGROUND_BLUE;break;
|
||||
case ConsoleColor::green:
|
||||
iFront=BACKGROUND_GREEN;break;
|
||||
case ConsoleColor::purple:
|
||||
iBack=BACKGROUND_RED | BACKGROUND_BLUE;break;
|
||||
case ConsoleColor::red:
|
||||
iBack=BACKGROUND_RED;break;
|
||||
case ConsoleColor::white:
|
||||
iBack=BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED; break;
|
||||
case ConsoleColor::yellow:
|
||||
iBack=BACKGROUND_RED | BACKGROUND_GREEN;break;
|
||||
}
|
||||
if(iFront!=0) iFront=iFront | FOREGROUND_INTENSITY;
|
||||
if(iBack!=0) iBack=iBack| BACKGROUND_INTENSITY;
|
||||
SetConsoleTextAttribute(_auto_init_console_info_obj.hout,iFront | iBack );
|
||||
}
|
||||
|
||||
void cprint()
|
||||
{
|
||||
SetConsoleTextAttribute(_auto_init_console_info_obj.hout,_auto_init_console_info_obj.color);
|
||||
}
|
||||
|
||||
}/// End of namespace _ColorUI_Internal_Namespace
|
||||
|
||||
ColorSelection::ColorSelection()
|
||||
{
|
||||
frontColor=ConsoleColor::white;
|
||||
backColor=ConsoleColor::black;
|
||||
}
|
35
ColorUI.h
Normal file
35
ColorUI.h
Normal file
@ -0,0 +1,35 @@
|
||||
#pragma once
|
||||
#include "CUI.h"
|
||||
|
||||
enum class ConsoleColor { black=0,red=1,green=2,yellow=3,blue=4,purple=5,lightblue=6,deepgreen=6,white=7 };
|
||||
|
||||
class ColorSelection : public Selection
|
||||
{
|
||||
public:
|
||||
ConsoleColor frontColor,backColor;
|
||||
|
||||
ColorSelection();
|
||||
virtual void drawText() override;
|
||||
virtual void drawInfo() override;
|
||||
|
||||
void onActivate();
|
||||
void onDeActivate();
|
||||
private:
|
||||
bool _activate;
|
||||
};
|
||||
|
||||
class ColorPage : public Page
|
||||
{
|
||||
public:
|
||||
virtual void draw() override;
|
||||
|
||||
virtual int onActive(int id) override;
|
||||
virtual void onActivate(int id);
|
||||
virtual void onDeactivate(int id);
|
||||
};
|
||||
|
||||
class ColorFrame : public Frame
|
||||
{
|
||||
public:
|
||||
void run(); /// overwritten
|
||||
};
|
Reference in New Issue
Block a user