1
Fork 0

Added changing cursors to indicate resizing and moving.

And removed the ad-hoc arrow graphics. However their remnant
code is still largely intact since the state flags for those
arrow graphics was used for the cursor changes.
This commit is contained in:
EvanR 2009-05-26 15:14:26 -04:00
parent 7547cc65fd
commit fc82f94305
2 changed files with 46 additions and 18 deletions

View File

@ -27,6 +27,8 @@
#include <fltk/Widget.h>
#include <fltk/events.h>
#include <fltk/Cursor.h>
#include "ui.h"
#include "uihelper.h"
@ -102,6 +104,10 @@ int Arranger::handle(int event){
case fltk::FOCUS:
return 1;
case fltk::ENTER:
//cursor(fltk::CURSOR_WE);
return 1;
case fltk::LEAVE:
//cursor(fltk::CURSOR_DEFAULT);
return 1;
case fltk::KEYUP:
@ -249,6 +255,7 @@ int Arranger::handle(int event){
move_x = X+scrollx;
move_y = Y+scrolly;
move_offset = xpix2tick(X+scrollx)/q_tick*q_tick - s->tick;
cursor(fltk::CURSOR_MOVE);
}
}
}
@ -353,16 +360,19 @@ lresize_torig;
else if(move_flag){
apply_move();
move_flag = 0;
cursor(fltk::CURSOR_DEFAULT);
}
else if(rresize_flag){
apply_rresize();
rresize_flag = 0;
resize_arrow = 0;
cursor(fltk::CURSOR_DEFAULT);
}
else if(lresize_flag){
apply_lresize();
lresize_flag = 0;
resize_arrow = 0;
cursor(fltk::CURSOR_DEFAULT);
}
insert_flag=0;
@ -383,6 +393,7 @@ lresize_torig;
}
delete_flag=0;
resize_arrow = 0;
cursor(fltk::CURSOR_DEFAULT);
}
@ -422,6 +433,8 @@ lresize_torig;
resize_x = tick2xpix(s->tick + s->dur)-scrollx-resize_handle_width-1;
resize_y = s->track*30-scrolly;
redraw();
cursor(fltk::CURSOR_WE);
}
}
else if(over_lhandle(s)){
@ -433,11 +446,14 @@ lresize_torig;
resize_x = tick2xpix(s->tick)+1 - scrollx;
resize_y = s->track*30 - scrolly;
redraw();
cursor(fltk::CURSOR_WE);
}
}
else{
if(resize_arrow != 0){
resize_arrow=0;
cursor(fltk::CURSOR_DEFAULT);
redraw();
}
}
@ -454,6 +470,7 @@ lresize_torig;
}
if(resize_arrow != 0){
resize_arrow=0;
cursor(fltk::CURSOR_DEFAULT);
redraw_question = 1;
}
if(redraw_question){redraw();}
@ -464,6 +481,7 @@ lresize_torig;
return 0;
}
void Arranger::draw(){
fltk::push_clip(0,0,w(),h());
@ -682,10 +700,10 @@ void Arranger::draw(){
int X = resize_x;
int Y = resize_y;
addvertex(X,Y);
addvertex(X,Y+H);
addvertex(X+W,Y+H/2);
fillpath();
//addvertex(X,Y);
//addvertex(X,Y+H);
//addvertex(X+W,Y+H/2);
//fillpath();
}
else if(resize_arrow < 0){
setcolor(resize_arrow_color);
@ -695,10 +713,10 @@ void Arranger::draw(){
int X = resize_x;
int Y = resize_y;
addvertex(X+W,Y);
addvertex(X+W,Y+H);
addvertex(X,Y+H/2);
fillpath();
//addvertex(X+W,Y);
//addvertex(X+W,Y+H);
//addvertex(X,Y+H/2);
//fillpath();
}
}

View File

@ -26,6 +26,8 @@
#include <fltk/Scrollbar.h>
#include <fltk/Cursor.h>
#include <fltk/events.h>
#include <stdio.h>
@ -108,6 +110,7 @@ int PianoRoll::handle(int event){
delete_flag = 0;
redraw();
resize_arrow = 0;
cursor(fltk::CURSOR_DEFAULT);
ui->event_edit->redraw();
return 1;
}
@ -202,7 +205,7 @@ int PianoRoll::handle(int event){
}
else{//begin move
move_flag = 1;
cursor(fltk::CURSOR_MOVE);
move_torig = e->tick;
move_qoffset = e->tick - quantize(e->tick);
@ -314,12 +317,14 @@ int PianoRoll::handle(int event){
apply_rresize();
rresize_flag = 0;
resize_arrow = 0;
cursor(fltk::CURSOR_DEFAULT);
ui->event_edit->redraw();
}
else if(lresize_flag){
apply_lresize();
lresize_flag = 0;
resize_arrow = 0;
cursor(fltk::CURSOR_DEFAULT);
ui->event_edit->redraw();
}
else if(insert_flag){
@ -337,7 +342,7 @@ int PianoRoll::handle(int event){
else if(move_flag){
apply_move();
move_flag = 0;
cursor(fltk::CURSOR_DEFAULT);
midi_track_off(cur_seqpat->track);
ui->keyboard->release_note(last_note,0);
@ -361,6 +366,7 @@ int PianoRoll::handle(int event){
}
delete_flag=0;
resize_arrow = 0;
cursor(fltk::CURSOR_DEFAULT);
}
redraw();
@ -376,6 +382,7 @@ int PianoRoll::handle(int event){
else{resize_arrow_color = fltk::color(95,58,119);}
resize_e = e;
resize_arrow = 1;
cursor(fltk::CURSOR_WE);
resize_x = tick2xpix(e->tick + e->dur)-scrollx-resize_handle_width;
resize_y = note2ypix(e->value1)-scrolly;
redraw();
@ -387,6 +394,7 @@ int PianoRoll::handle(int event){
else{resize_arrow_color = fltk::color(95,58,119);}
resize_e = e;
resize_arrow = -1;
cursor(fltk::CURSOR_WE);
resize_x = tick2xpix(e->tick)+1 - scrollx;
resize_y = note2ypix(e->value1) - scrolly;
redraw();
@ -396,6 +404,7 @@ int PianoRoll::handle(int event){
if(resize_e != e || resize_arrow != 0){
resize_e = e;
resize_arrow = 0;
cursor(fltk::CURSOR_DEFAULT);
redraw();
}
}
@ -403,6 +412,7 @@ int PianoRoll::handle(int event){
else{
if(resize_arrow != 0){
resize_arrow = 0;
cursor(fltk::CURSOR_DEFAULT);
redraw();
}
}
@ -557,10 +567,10 @@ void PianoRoll::draw(){
int X = resize_x;
int Y = resize_y;
addvertex(X,Y);
addvertex(X,Y+H);
addvertex(X+W,Y+H/2);
fillpath();
//addvertex(X,Y);
//addvertex(X,Y+H);
//addvertex(X+W,Y+H/2);
//fillpath();
}
else if(resize_arrow < 0){
setcolor(resize_arrow_color);
@ -570,10 +580,10 @@ void PianoRoll::draw(){
int X = resize_x;
int Y = resize_y;
addvertex(X+W,Y);
addvertex(X+W,Y+H);
addvertex(X,Y+H/2);
fillpath();
//addvertex(X+W,Y);
//addvertex(X+W,Y+H);
//addvertex(X,Y+H/2);
//fillpath();
}
}