Project: FAR manager
Revision: 1948
Author: drkns
Date: 10 Aug 2008 16:24:33
Changes:custom color for user screen
Files:modified: /trunk/unicode_far/palette.cpp (
try)
modified: /trunk/unicode_far/ctrlobj.cpp (
try)
modified: /trunk/unicode_far/execute.cpp (
try)
modified: /trunk/unicode_far/imports.hpp (
try)
modified: /trunk/unicode_far/vbuild.m4 (
try)
modified: /trunk/unicode_far/main.cpp (
try)
modified: /trunk/unicode_far/changelog (
try)
modified: /trunk/unicode_far/colors.hpp (
try)
modified: /trunk/unicode_far/savescr.cpp (
try)
modified: /trunk/unicode_far/interf.cpp (
try)
modified: /trunk/unicode_far/farlang.templ (
try)
modified: /trunk/unicode_far/setcolor.cpp (
try)
modified: /trunk/unicode_far/savescr.hpp (
try)
Diff:
| ... | ...@@ -190,6 +190,7 @@ |
| 190 | 190 | F_YELLOW|B_CYAN, // COL_MENUARROWS,
|
| 191 | 191 | F_DARKGRAY|B_CYAN, // COL_MENUARROWSDISABLED,
|
| 192 | 192 | F_YELLOW|B_BLACK, // COL_MENUARROWSSELECTED,
|
| 193 | F_LIGHTGRAY|B_BLACK, // COL_COMMANDLINEUSERSCREEN,
|
| 193 | 194 | };
|
| 194 | 195 |
|
| 195 | 196 |
|
| ... | ...@@ -347,6 +348,7 @@ |
| 347 | 348 | F_WHITE|B_LIGHTGRAY, // COL_MENUARROWS,
|
| 348 | 349 | F_DARKGRAY|B_LIGHTGRAY, // COL_MENUARROWSDISABLED,
|
| 349 | 350 | F_WHITE|B_BLACK, // COL_MENUARROWSSELECTED,
|
| 351 | F_LIGHTGRAY|B_BLACK, // COL_COMMANDLINEUSERSCREEN,
|
| 350 | 352 | };
|
| 351 | 353 |
|
| 352 | 354 |
|
| ... | ...@@ -369,8 +371,8 @@ |
| 369 | 371 | 1.70 b4 (1282) - 0x60
|
| 370 | 372 | 1.70 b5 () - 0x70
|
| 371 | 373 |
|
| 372 | | 1.71 a4 (2335) - 0x7F
|
| 373 | | 1.80 (453) - 0x7F
|
| 374 | 1.71 a4 (2427) - 0x80
|
| 375 | 1.80 (547) - 0x80
|
| 374 | 376 | */
|
| 375 | 377 | void ConvertCurrentPalette()
|
| 376 | 378 | {
|
| ... | ...@@ -84,7 +84,7 @@ |
| 84 | 84 | TreeList::ClearCache(0);
|
| 85 | 85 | FileFilter::InitFilter();
|
| 86 | 86 |
|
| 87 | | SetColor(F_LIGHTGRAY|B_BLACK);
|
| 87 | SetColor(COL_COMMANDLINEUSERSCREEN);
|
| 88 | 88 | GotoXY(0,ScrY-3);
|
| 89 | 89 | ShowCopyright();
|
| 90 | 90 | GotoXY(0,ScrY-2);
|
| ... | ...@@ -217,7 +217,7 @@ |
| 217 | 217 | }
|
| 218 | 218 | else
|
| 219 | 219 | {
|
| 220 | | ScrollScreen(2+Line2?1:0);
|
| 220 | ScrollScreen(2+(Line2?1:0));
|
| 221 | 221 | if(Line2)
|
| 222 | 222 | {
|
| 223 | 223 | GotoXY(0,ScrY-4);
|
| ... | ...@@ -238,4 +238,4 @@ |
| 238 | 238 |
|
| 239 | 239 | extern ImportedFunctions ifn;
|
| 240 | 240 |
|
| 241 | | #endif // __IMPORTS_HPP__ |
| 242 | 241 | \ No newline at end of file |
| 242 | #endif // __IMPORTS_HPP__
|
| ... | ...@@ -1 +1 @@ |
| 0 | | m4_define(BUILD,546)m4_dnl |
| 0 | m4_define(BUILD,547)m4_dnl |
| ... | ...@@ -133,6 +133,10 @@ |
| 133 | 133 | ChangePriority ChPriority(WinVer.dwPlatformId==VER_PLATFORM_WIN32_WINDOWS ? THREAD_PRIORITY_ABOVE_NORMAL:THREAD_PRIORITY_NORMAL);
|
| 134 | 134 | ControlObject CtrlObj;
|
| 135 | 135 |
|
| 136 | CONSOLE_SCREEN_BUFFER_INFO InitCsbi;
|
| 137 | GetConsoleScreenBufferInfo(hConOut,&InitCsbi);
|
| 138 | SetRealColor(COL_COMMANDLINEUSERSCREEN);
|
| 139 |
|
| 136 | 140 | // |
| ... | ...@@ -1,3 +1,12 @@ |
| 1 | drkns 11.08.2008 00:19:22 +0200 - build 547
|
| 2 |
|
| 3 | 1. |
| ... | ...@@ -36,6 +36,7 @@ |
| 36 | 36 |
|
| 37 | 37 | #include "savescr.hpp"
|
| 38 | 38 | #include "fn.hpp"
|
| 39 | #include "colors.hpp"
|
| 39 | 40 | #include "global.hpp"
|
| 40 | 41 |
|
| 41 | 42 | SaveScreen::SaveScreen()
|
| ... | ...@@ -118,8 +119,7 @@ |
| 118 | 119 | SaveScreen::Y1=Y1;
|
| 119 | 120 | SaveScreen::X2=X2;
|
| 120 | 121 | SaveScreen::Y2=Y2;
|
| 121 | | int _ScreenBufSize=ScreenBufSize();
|
| 122 | | ScreenBuf=new char[_ScreenBufSize];
|
| 122 | ScreenBuf=new CHAR_INFO[ScreenBufCharCount()];
|
| 123 | 123 | if (!ScreenBuf)
|
| 124 | 124 | return;
|
| 125 | 125 | if (RealScreen)
|
| ... | ...@@ -130,7 +130,7 @@ |
| 130 | 130 | }
|
| 131 | 131 | else
|
| 132 | 132 | {
|
| 133 | | GetText(X1,Y1,X2,Y2,ScreenBuf,_ScreenBufSize);
|
| 133 | GetText(X1,Y1,X2,Y2,ScreenBuf,ScreenBufCharCount()*sizeof(CHAR_INFO));
|
| 134 | 134 | GetCursorPos(CurPosX,CurPosY);
|
| 135 | 135 | GetCursorType(CurVisible,CurSize);
|
| 136 | 136 | }
|
| ... | ...@@ -148,7 +148,7 @@ |
| 148 | 148 | }
|
| 149 | 149 | else
|
| 150 | 150 | {
|
| 151 | | GetText(X1,Y1,X2,Y2,ScreenBuf,ScreenBufSize());
|
| 151 | GetText(X1,Y1,X2,Y2,ScreenBuf,ScreenBufCharCount()*sizeof(CHAR_INFO));
|
| 152 | 152 | GetCursorPos(CurPosX,CurPosY);
|
| 153 | 153 | GetCursorType(CurVisible,CurSize);
|
| 154 | 154 | }
|
| ... | ...@@ -164,7 +164,7 @@ |
| 164 | 164 |
|
| 165 | 165 | void SaveScreen::AppendArea(SaveScreen *NewArea)
|
| 166 | 166 | {
|
| 167 | | CHAR_INFO *Buf=(CHAR_INFO *)ScreenBuf,*NewBuf=(CHAR_INFO *)NewArea->ScreenBuf;
|
| 167 | CHAR_INFO *Buf=ScreenBuf,*NewBuf=NewArea->ScreenBuf;
|
| 168 | 168 | if (Buf==NULL || NewBuf==NULL)
|
| 169 | 169 | return;
|
| 170 | 170 | for (int X=X1;X<=X2;X++)
|
| ... | ...@@ -187,8 +187,8 @@ |
| 187 | 187 |
|
| 188 | 188 | int NX1,NX2,NY1,NY2;
|
| 189 | 189 | NX1=NX2=NY1=NY2=0;
|
| 190 | | char *NewBuf = new char[ScreenBufSize(NewX,NewY)];
|
| 191 | | CleanupBuffer(NewBuf,NewX,NewY);
|
| 190 | PCHAR_INFO NewBuf = new CHAR_INFO[NewX*NewY];
|
| 191 | CleanupBuffer(NewBuf,NewX*NewY);
|
| 192 | 192 | int NewWidth=Min(OWi,NewX);
|
| 193 | 193 | int NewHeight=Min(OHe,NewY);
|
| 194 | 194 | int iYReal;
|
| ... | ...@@ -223,7 +223,7 @@ |
| 223 | 223 | ToIndex+=NewX-OWi;
|
| 224 | 224 | }
|
| 225 | 225 | }
|
| 226 | | CharCopy(NewBuf, ToIndex, ScreenBuf, FromIndex, NewWidth);
|
| 226 | CharCopy(&NewBuf[ToIndex],&ScreenBuf[FromIndex],NewWidth);
|
| 227 | 227 | }
|
| 228 | 228 | delete [] ScreenBuf;
|
| 229 | 229 | ScreenBuf=NewBuf;
|
| ... | ...@@ -232,26 +232,23 @@ |
| 232 | 232 | }
|
| 233 | 233 |
|
| 234 | 234 |
|
| 235 | | int SaveScreen::ScreenBufSize()
|
| 235 | int SaveScreen::ScreenBufCharCount()
|
| 236 | 236 | {
|
| 237 | | return ScreenBufSize( X2-X1+1, Y2-Y1+1);
|
| 237 | return (X2-X1+1)*(Y2-Y1+1);
|
| 238 | 238 | }
|
| 239 | 239 |
|
| 240 | | int SaveScreen::ScreenBufSize(int Width,int Height)
|
| 240 | void SaveScreen::CharCopy(PCHAR_INFO ToBuffer,PCHAR_INFO FromBuffer,int Count)
|
| 241 | 241 | {
|
| 242 | | return Height*Width*sizeof(CHAR_INFO);
|
| 242 | memcpy(ToBuffer,FromBuffer,Count*sizeof(CHAR_INFO));
|
| 243 | 243 | }
|
| 244 | 244 |
|
| 245 | | void SaveScreen::CharCopy(char *ToBuffer,int ToIndex, char *FromBuffer, int FromIndex, int Count)
|
| 245 | void SaveScreen::CleanupBuffer(PCHAR_INFO Buffer, size_t BufSize)
|
| 246 | 246 | {
|
| 247 | | memcpy(ToBuffer+ToIndex*sizeof(CHAR_INFO),FromBuffer+FromIndex*sizeof(CHAR_INFO),Count*sizeof(CHAR_INFO));
|
| 248 | | }
|
| 249 | |
|
| 250 | | void SaveScreen::CleanupBuffer(char *Buffer, int Height, int Width)
|
| 251 | | {
|
| 252 | | int BufSize=Height*Width;
|
| 253 | | for (int i=0;i<BufSize;i++){
|
| 254 | | *(int*)&Buffer[i*sizeof(CHAR_INFO)]=0x00070020;
|
| 247 | WORD Attr=FarColorToReal(COL_COMMANDLINEUSERSCREEN);
|
| 248 | for (size_t i=0;i<BufSize;i++)
|
| 249 | {
|
| 250 | Buffer[i].Attributes=Attr;
|
| 251 | Buffer[i].Char.UnicodeChar=L' ';
|
| 255 | 252 | }
|
| 256 | 253 | }
|
| 257 | 254 |
|
| ... | ...@@ -957,7 +957,7 @@ |
| 957 | 957 | void ScrollScreen(int Count)
|
| 958 | 958 | {
|
| 959 | 959 | ScrBuf.Scroll(Count);
|
| 960 | | ScrBuf.FillRect(0,ScrY+1-Count,ScrX,ScrY,' ',FarColorToReal(F_LIGHTGRAY|B_BLACK));
|
| 960 | ScrBuf.FillRect(0,ScrY+1-Count,ScrX,ScrY,' ',FarColorToReal(COL_COMMANDLINEUSERSCREEN));
|
| 961 | 961 | }
|
| 962 | 962 |
|
| 963 | 963 |
|
| ... | ...@@ -296,10 +296,11 @@ |
| 296 | 296 | {
|
| 297 | 297 | (const wchar_t *)MSetColorCommandLineNormal,LIF_SELECTED,0,
|
| 298 | 298 | (const wchar_t *)MSetColorCommandLineSelected,0,0,
|
| 299 | | (const wchar_t *)MSetColorCommandLinePrefix,0,0
|
| 299 | (const wchar_t *)MSetColorCommandLinePrefix,0,0,
|
| 300 | (const wchar_t *)MSetColorCommandLineUserScreen,0,0,
|
| 300 | 301 | };
|
| 301 | 302 | int CommandLinePaletteItems[]={
|
| 302 | | COL_COMMANDLINE,COL_COMMANDLINESELECTED,COL_COMMANDLINEPREFIX
|
| 303 | COL_COMMANDLINE,COL_COMMANDLINESELECTED,COL_COMMANDLINEPREFIX,COL_COMMANDLINEUSERSCREEN
|
| 303 | 304 | };
|
| 304 | 305 |
|
| 305 | 306 | struct MenuDataEx ClockItems[]=
|
| ... | ...@@ -37,17 +37,16 @@ |
| 37 | 37 | {
|
| 38 | 38 | friend class Grabber;
|
| 39 | 39 | private:
|
| 40 | | char *ScreenBuf;
|
| 40 | PCHAR_INFO ScreenBuf;
|
| 41 | 41 | int CurPosX,CurPosY,CurVisible,CurSize;
|
| 42 | 42 | int X1,Y1,X2,Y2;
|
| 43 | 43 | int RealScreen;
|
| 44 | 44 |
|
| 45 | 45 | private:
|
| 46 | | void CleanupBuffer(char *Buffer, int Height, int Width);
|
| 47 | | int ScreenBufSize();
|
| 48 | | int ScreenBufSize(int Width,int Height);
|
| 49 | | void CharCopy(char *ToBuffer,int ToIndex, char *FromBuffer, int FromIndex, int Count);
|
| 50 | | CHAR_INFO* GetBufferAddress() {return((CHAR_INFO *)ScreenBuf);};
|
| 46 | void CleanupBuffer(PCHAR_INFO Buffer, size_t BufSize);
|
| 47 | int ScreenBufCharCount();
|
| 48 | void CharCopy(PCHAR_INFO ToBuffer,PCHAR_INFO FromBuffer,int Count);
|
| 49 | CHAR_INFO* GetBufferAddress() {return ScreenBuf;};
|
| 51 | 50 |
|
| 52 | 51 | public:
|
| 53 | 52 | SaveScreen();
|
To list