|
@@ -2438,6 +2438,31 @@ int ourinv_CycleSketch(laOperator* a, laEvent* e){
|
|
|
laMarkMemChanged(Our->CanvasSaverDummyList.pFirst);
|
|
|
}
|
|
|
|
|
|
+int ourinv_AdjustBrush(laOperator* a, laEvent* e){
|
|
|
+ OurCanvasDraw *ex = a->This?a->This->EndInstance:0; if(!ex) return LA_FINISHED;
|
|
|
+ ex->CanvasDownX = e->x; ex->CanvasDownY=e->y; ex->LastSize=Our->BrushSize; ex->LastNumber=Our->BrushNumber;
|
|
|
+ return LA_RUNNING;
|
|
|
+}
|
|
|
+int ourmod_AdjustBrushSize(laOperator* a, laEvent* e){
|
|
|
+ OurCanvasDraw *ex = a->This?a->This->EndInstance:0; if(!ex) return LA_FINISHED;
|
|
|
+ if((e->type&LA_MOUSE_EVENT)&&(e->type&LA_STATE_DOWN)){ return LA_FINISHED; }
|
|
|
+ if(e->key == LA_KEY_ESCAPE || e->key==LA_KEY_ENTER){ return LA_FINISHED; }
|
|
|
+ if(Our->BrushNumber!=0){
|
|
|
+ real dist = e->x-ex->CanvasDownX+ex->CanvasDownY-e->y;
|
|
|
+ int number = dist/LA_RH + ex->LastNumber;
|
|
|
+ TNS_CLAMP(number,1,10);
|
|
|
+ ourset_BrushNumber(0,number);
|
|
|
+ laNotifyUsers("our.canvas_notify");
|
|
|
+ }else{
|
|
|
+ real dist = e->x-ex->CanvasDownX+ex->CanvasDownY-e->y;
|
|
|
+ real newsize = dist/LA_RH + ex->LastSize;
|
|
|
+ TNS_CLAMP(newsize,0.001,10);
|
|
|
+ ourset_BrushSize(0,newsize);
|
|
|
+ laNotifyUsers("our.canvas_notify");
|
|
|
+ }
|
|
|
+ return LA_RUNNING;
|
|
|
+}
|
|
|
+
|
|
|
void our_SmoothGlobalInput(real *x, real *y, int reset){
|
|
|
if(reset){ Our->LastX=*x; Our->LastY=*y; return; }
|
|
|
else{
|
|
@@ -3268,6 +3293,7 @@ void ourRegisterEverything(){
|
|
|
laCreateOperatorType("OUR_set_brush_number","Set Brush Number","Choose a numbered brush",0,0,0,ourinv_BrushSetNumber,0,0,0);
|
|
|
laCreateOperatorType("OUR_action","Action","Doing action on a layer",0,0,0,ourinv_Action,ourmod_Action,0,LA_EXTRA_TO_PANEL);
|
|
|
laCreateOperatorType("OUR_pick","Pick color","Pick color on the widget",0,0,0,ourinv_PickColor,ourmod_PickColor,0,LA_EXTRA_TO_PANEL);
|
|
|
+ laCreateOperatorType("OUR_adjust_brush","Adjust brush","Adjust brush",0,0,0,ourinv_AdjustBrush,ourmod_AdjustBrushSize,0,LA_EXTRA_TO_PANEL);
|
|
|
at=laCreateOperatorType("OUR_export_image","Export Image","Export the image",ourchk_ExportImage,0,ourexit_ExportImage,ourinv_ExportImage,ourmod_ExportImage,U'🖼',0);
|
|
|
at->UiDefine=ourui_ExportImage; pc=laDefineOperatorProps(at, 1);
|
|
|
p=laAddEnumProperty(pc, "bit_depth","Bit Depth","How many bits per channel should be used",0,0,0,0,0,offsetof(OurPNGWriteExtra,BitDepth),0,0,0,0,0,0,0,0,0,0);
|
|
@@ -3585,6 +3611,7 @@ void ourRegisterEverything(){
|
|
|
laAssignNewKey(km, 0, "LA_2d_view_zoom", LA_KM_SEL_UI_EXTRA, 0, LA_SIGNAL_EVENT, OUR_SIGNAL_ZOOM_IN, "direction=in");
|
|
|
laAssignNewKey(km, 0, "OUR_pick", LA_KM_SEL_UI_EXTRA, 0, LA_SIGNAL_EVENT, OUR_SIGNAL_PICK, 0);
|
|
|
laAssignNewKey(km, 0, "LA_2d_view_move", LA_KM_SEL_UI_EXTRA, 0, LA_SIGNAL_EVENT, OUR_SIGNAL_MOVE, 0);
|
|
|
+ laAssignNewKey(km, 0, "OUR_adjust_brush", LA_KM_SEL_UI_EXTRA, 0, LA_SIGNAL_EVENT, OUR_SIGNAL_ADJUST, 0);
|
|
|
|
|
|
km=&MAIN.KeyMap; char buf[128];
|
|
|
for(int i=0;i<=9;i++){
|
|
@@ -3625,6 +3652,7 @@ void ourRegisterEverything(){
|
|
|
laNewCustomSignal("our.brush_number_8",OUR_SIGNAL_SELECT_BRUSH_NUMBER_8);
|
|
|
laNewCustomSignal("our.brush_number_9",OUR_SIGNAL_SELECT_BRUSH_NUMBER_9);
|
|
|
laNewCustomSignal("our.brush_free",OUR_SIGNAL_SELECT_BRUSH_FREE);
|
|
|
+ laNewCustomSignal("our.adjust",OUR_SIGNAL_ADJUST);
|
|
|
|
|
|
laInputMapping* im=MAIN.InputMapping->CurrentInputMapping;
|
|
|
if(!im) im=laNewInputMapping("Our Paint Default");
|
|
@@ -3646,6 +3674,7 @@ void ourRegisterEverything(){
|
|
|
laNewInputMappingEntryP(im,LA_INPUT_DEVICE_KEYBOARD,0,"Num8",0,OUR_SIGNAL_SELECT_BRUSH_NUMBER_8);
|
|
|
laNewInputMappingEntryP(im,LA_INPUT_DEVICE_KEYBOARD,0,"Num9",0,OUR_SIGNAL_SELECT_BRUSH_NUMBER_9);
|
|
|
laNewInputMappingEntryP(im,LA_INPUT_DEVICE_KEYBOARD,0,"NumDot",0,OUR_SIGNAL_SELECT_BRUSH_FREE);
|
|
|
+ laNewInputMappingEntryP(im,LA_INPUT_DEVICE_KEYBOARD,0,"f",0,OUR_SIGNAL_ADJUST);
|
|
|
|
|
|
laAssignNewKey(km, 0, "LA_undo", 0, LA_KEY_CTRL, LA_KEY_DOWN, ']', 0);
|
|
|
laAssignNewKey(km, 0, "LA_redo", 0, LA_KEY_CTRL, LA_KEY_DOWN, '[', 0);
|