From 030d9ca5b694c86227ac8098f29dff46d9a2a344 Mon Sep 17 00:00:00 2001 From: y4my4my4m <8145020+y4my4my4m@users.noreply.github.com> Date: Thu, 11 Nov 2021 03:48:58 -0500 Subject: [PATCH] Integrated PaletteSelect to PaletteEditor --- src/Home/PaletteEditor/Load.CC | 223 ++++++++---------- src/Home/{ => PaletteEditor}/PaletteSelect.CC | 7 +- 2 files changed, 103 insertions(+), 127 deletions(-) rename src/Home/{ => PaletteEditor}/PaletteSelect.CC (90%) diff --git a/src/Home/PaletteEditor/Load.CC b/src/Home/PaletteEditor/Load.CC index 7abe9b96..6b2d3398 100755 --- a/src/Home/PaletteEditor/Load.CC +++ b/src/Home/PaletteEditor/Load.CC @@ -1,19 +1,16 @@ -/*This was done with <CTRL-SHIFT-L> template code. -It's conceptually easy to do a ctrl, -but tedious. You have complete freedom. - -See $LK,"CCtrl",A="MN:CCtrl"$. -*/ - -//Start of autocreated Code #define SLIDER_RANGE 255 #define SLIDER_SPACING 28 #define SLIDER_BORDER 2 + +#define PALETTES_PATH "~/PaletteEditor/Palettes/" + + +#include "~/PaletteEditor/PaletteSelect" + +I64 current_palette = "temp"; + I64 SELECTED_COLOR = 0; - - - I64 l,r,t,b; @@ -37,6 +34,43 @@ U0 DrawCtrlSlider(CDC *dc,CCtrl *c) CSliderState *s=c->state; + + //GrPrint(dc,0,50,"%s", current_palette); + + I64 size=(c->win_task->pix_width/16); + I64 border=size/16; + I64 SLIDER_AMOUNT=3; + I64 i,k,j,l; + I64 pos,col; + CBGR24 tempColor; + + /////////////////////// + // CURRENT SELECTION // + /////////////////////// + + // current color box preview + dc->color=BLACK; + GrPrint(dc,10,10,"Preview:"); + + // pixel loop for current color preview + for(i=0; i<=12; i++) + for(j=0; j<=12; j++) + { + tempColor = gr_palette[SELECTED_COLOR]; + if(i<border || i>12-border || j<border || j>12-border) tempColor = 0x000000; + DrawPixel(c->win_task->pix_left + 78 + i, t + 7 + j, tempColor); + } + GrPrint(dc,10,26,"Current Color: #%d", SELECTED_COLOR+1); + dc->color=SELECTED_COLOR; + GrPrint(dc,95,10,"#%x%x%x", gr_palette[SELECTED_COLOR].r, + gr_palette[SELECTED_COLOR].g, + gr_palette[SELECTED_COLOR].b); + + + //////////// + // SLIDER // + //////////// + //box dc->color=LTRED; GrRect(dc, c->left, @@ -47,25 +81,24 @@ U0 DrawCtrlSlider(CDC *dc,CCtrl *c) GrRect(dc, c->left+SLIDER_BORDER, c->top+SLIDER_BORDER, SLIDER_SPACING*4+2-2*SLIDER_BORDER, - SLIDER_SPACING*2+SLIDER_RANGE-2*SLIDER_BORDER); + SLIDER_SPACING*2+SLIDER_RANGE-2*SLIDER_BORDER); //slider dc->color=BLACK; - I64 SLIDER_AMOUNT=3; - I64 i,k,j,l; - for(i=1; i<=3; i++){ + for(i=1; i<=3; i++) + { GrLine(dc, c->left+i*SLIDER_SPACING+i-1, c->top+SLIDER_SPACING, c->left+i*SLIDER_SPACING+i-1, -r c->top+SLIDER_SPACING+SLIDER_RANGE-1); + c->top+SLIDER_SPACING+SLIDER_RANGE-1); } //values dc->color=LTRED; - I64 pos,col; - for(i=1; i<=3; i++){ + for(i=1; i<=3; i++) + { if (i==1) { pos=s->left_pos; col="B";} if (i==2) { pos=s->middle_pos;col="G";} @@ -85,10 +118,9 @@ r c->top+SLIDER_SPACING+SLIDER_RANGE-1); 7,5); } - - //color preview - I64 size=(c->win_task->pix_width/16); - I64 border=size/16; + //////////////////// + // COLORS PREVIEW // + //////////////////// dc->color=8; GrRect(dc,0,c->win_task->pix_height + size*1.5 - size*2 ,c->win_task->pix_width,size*0.75); @@ -96,7 +128,7 @@ r c->top+SLIDER_SPACING+SLIDER_RANGE-1); for(i=0;i<16;i++){ for (j = 0; j <= size; j++){ for (k = 0; k <= size; k++){ - CBGR24 tempColor=gr_palette[i]; + tempColor=gr_palette[i]; // black borders if(k<border || k>size-border || j < border || j>size-border) tempColor=0x000000; // color preview @@ -120,65 +152,17 @@ r c->top+SLIDER_SPACING+SLIDER_RANGE-1); } - // current color box preview - dc->color=BLACK; - GrPrint(dc,10,10,"Preview:"); - // pixel loop for current color preview - for(i=0; i <=12; i++) - for(j=0; j<=12; j++){ - tempColor = gr_palette[SELECTED_COLOR]; - if(i<border/2 || i>12-border/2 || j<border/2 || j>12-border/2) tempColor = 0x000000; - DrawPixel(c->win_task->pix_left + 78 + i, t + 7 + j, tempColor); - } - GrPrint(dc,10,26,"Current Color: #%d", SELECTED_COLOR+1); - dc->color=SELECTED_COLOR; - GrPrint(dc,95,10,"#%x%x%x", gr_palette[SELECTED_COLOR].r, - gr_palette[SELECTED_COLOR].g, - gr_palette[SELECTED_COLOR].b); - - // buttons - - //I64 l1 = StrLen("LOAD"); - - //GrPrint(dc, 100,30,"$$CM+CX,%d,4$$$$BT,\"%s\",LE=%d$$\n", -l1 / 2, "LOAD", 1); - //DocPrint(dc, "$$CM+CX,%d,4$$$$BT,\"%s\",LE=%d$$\n", -l1 / 2, "LOAD", 1); - + // Add Save/Load button? } -U0 PELoad(Bool prompt) -{ - - U8 file_path = PopUpPickFile("::/Home/PaletteEditor/Palettes"); - - //FileExtRemove(file_path); - //StrLastRemove(file_path, "/", file_name); - //StrFirstRemove(file_name+1, StrLen(file_name), without_first_ch); - //ToUpper(*upper_case); - - U8 file = FileRead(file_path); - - I64 temp_file; - - I64 i; - // StrPrintHex might be better?.. - for (i = 0; i < COLORS_NUM; i++) - { - StrFirstRemove(file,",", temp_file); - gr_palette[i] = Str2I64(temp_file,16); - } - LFBFlush; - // PaletteSetTemp; - -} - U0 PESave(Bool prompt, CCtrl *c) { //U8 old_draw_it = c->draw_it; - CDoc *doc = DocNew("~/PaletteEditor/Palettes/MyPalette.CC"); + CDoc *doc = DocNew(PALETTES_PATH); I64 i; // U8 tmp_name= doc->filename.name; // I64 file_name; @@ -310,47 +294,40 @@ U0 SliderDel(CCtrl *c) Free(c); } -//End of autocreated Code - public U0 PaletteEditor() { SettingsPush; MenuPush( "File {" - " New(,'.');" - //" ChangeDir(MESSAGE_CMD,PSMF_CD);" " Open(,CH_CTRLO);" " SaveAs(,CH_CTRLA);" " Abort(,CH_SHIFT_ESC);" " Exit(,CH_ESC);" "}" - "Help {" - " Help(,,SC_F1);" + "About {" + " Info(,CH_CTRLI);" "}" ); - MenuPop; - SettingsPop; DocClear; CCtrl *c=SliderNew; - I64 arg1,arg2,ch=0,sc=0; + I64 arg1,arg2,sc=0; I64 original_left, original_right, original_top, original_bottom; original_left = c->win_task->win_left; original_right = c->win_task->win_right; original_top = c->win_task->win_top; original_bottom = c->win_task->win_bottom; - // PopUp(c); // windowed - c->win_task->win_left = (GR_WIDTH/20); - c->win_task->win_right = (GR_WIDTH/14); + c->win_task->win_left = (GR_WIDTH/23); + c->win_task->win_right = (GR_WIDTH/13); // c->win_task->win_right = c->win_task->win_width - 85; - c->win_task->win_top = 20; - c->win_task->win_bottom = GR_HEIGHT/14;//c->win_task->win_height; + c->win_task->win_top = GR_HEIGHT/80; + c->win_task->win_bottom = GR_HEIGHT/10;//c->win_task->win_height; // init pos for 32bit redraw @@ -362,46 +339,46 @@ public U0 PaletteEditor() SelectColor(0,c); - try { - while(TRUE) { - switch(MessageScan(&arg1,&arg2,1<<MESSAGE_KEY_DOWN|1<<MESSAGE_KEY_UP)) { - case MESSAGE_KEY_DOWN: - ch=arg1; - switch(ch){ - case '1': SelectColor(0,c); break; - case '2': SelectColor(1,c); break; - case '3': SelectColor(2,c); break; - case '4': SelectColor(3,c); break; - case '5': SelectColor(4,c); break; - case '6': SelectColor(5,c); break; - case '7': SelectColor(6,c); break; - case '8': SelectColor(7,c); break; - case '9': SelectColor(8,c); break; - case '0': SelectColor(9,c); break; - case '-': SelectColor(10,c);break; - case '=': SelectColor(11,c);break; - case 'q': SelectColor(12,c);break; - case 'w': SelectColor(13,c);break; - case 'e': SelectColor(14,c);break; - case 'r': SelectColor(15,c);break; - //case 's': PalettePrint; break; - case CH_CTRLO: PELoad(TRUE);break; - case CH_CTRLA: PESave(TRUE,c);break; - //case CH_CTRLT: LFBFlush; break; - case CH_ESC: // should make it keep palette on ESC and discard on SHIFT_ESC - case CH_SHIFT_ESC: - LFBFlush; - DocClear; - throw; - } - break; - } + try + { + while(TRUE) + { + switch(KeyGet(&sc)) + { + case '1': SelectColor(0,c); break; + case '2': SelectColor(1,c); break; + case '3': SelectColor(2,c); break; + case '4': SelectColor(3,c); break; + case '5': SelectColor(4,c); break; + case '6': SelectColor(5,c); break; + case '7': SelectColor(6,c); break; + case '8': SelectColor(7,c); break; + case '9': SelectColor(8,c); break; + case '0': SelectColor(9,c); break; + case '-': SelectColor(10,c);break; + case '=': SelectColor(11,c);break; + case 'q': SelectColor(12,c);break; + case 'w': SelectColor(13,c);break; + case 'e': SelectColor(14,c);break; + case 'r': SelectColor(15,c);break; + case CH_CTRLO: current_palette = PaletteSelect; break; + case CH_CTRLI: PopUpOk("Made by y4my4m"); break;$ID,2$ + case CH_CTRLA: PESave(TRUE,c);break; + case CH_ESC: // should make it keep palette on ESC and discard on SHIFT_ESC + case CH_SHIFT_ESC: + LFBFlush; + DocClear; + throw; + } Refresh; } + } catch PutExcept; + MenuPop; + SettingsPop; SliderDel(c); DocBottom; @@ -412,6 +389,4 @@ public U0 PaletteEditor() c->win_task->win_top = original_top; c->win_task->win_bottom = original_bottom; -} - -//PaletteEditor; +} \ No newline at end of file diff --git a/src/Home/PaletteSelect.CC b/src/Home/PaletteEditor/PaletteSelect.CC similarity index 90% rename from src/Home/PaletteSelect.CC rename to src/Home/PaletteEditor/PaletteSelect.CC index af5f692a..772703ac 100755 --- a/src/Home/PaletteSelect.CC +++ b/src/Home/PaletteEditor/PaletteSelect.CC @@ -1,6 +1,5 @@ - -public U0 PaletteSelect() +public I64 PaletteSelect() { CDirEntry *tmpde1 = NULL, *tmpde2; @@ -35,7 +34,9 @@ public U0 PaletteSelect() DocDel(doc); if (res != (DOCM_CANCEL || 0)) PaletteSet(res, TRUE); + + return res; } -PaletteSelect; \ No newline at end of file +//PaletteSelect; \ No newline at end of file