Browse Source

Make mark labels editable.

tags/non-daw-v1.1.0
Jonathan Moore Liles 17 years ago
parent
commit
07b193c9c5
3 changed files with 22 additions and 6 deletions
  1. +16
    -1
      Timeline/Ruler_Point.H
  2. +4
    -5
      Timeline/Sequence_Widget.C
  3. +2
    -0
      Timeline/Timeline.C

+ 16
- 1
Timeline/Ruler_Point.H View File

@@ -22,6 +22,8 @@
#include "Loggable.H"
#include "Sequence_Point.H"

#include <FL/fl_ask.H>

class Ruler_Point : public Sequence_Point
{

@@ -33,6 +35,7 @@ public:
if ( _label )
free( _label );
_label = strdup( s );
redraw();
}

protected:
@@ -61,7 +64,7 @@ protected:
name( v );
}

timeline->redraw();
// timeline->redraw();
}

Ruler_Point ( )
@@ -105,6 +108,18 @@ public:
int
handle ( int m )
{
Logger _log( this );

if ( m == FL_PUSH && Fl::event_button3() && ! Fl::event_ctrl() )
{
const char *s = fl_input( "New name for mark:", name() );

if ( s )
name( s );

return 1;
}

int r = Sequence_Widget::handle( m );

if ( m == FL_RELEASE )


+ 4
- 5
Timeline/Sequence_Widget.C View File

@@ -95,11 +95,10 @@ Sequence_Widget::draw_label ( const char *label, Fl_Align align, Fl_Color color

if ( align & FL_ALIGN_BOTTOM )
fl_draw_box( b, X - dx - bx, Y + H - lh, lw + bw, lh, FL_GRAY );
else
if ( align & FL_ALIGN_LEFT )
fl_draw_box( b, X - dx, Y, lw + bw, lh, FL_GRAY );
else
fl_draw_box( b, X - dx - bx + ((W / 2) - (lw / 2)), Y + ((H / 2) - (lh / 2)), lw + bw, lh, FL_GRAY );
else if ( align == FL_ALIGN_LEFT )
fl_draw_box( b, X - dx, Y + ((H / 2) - (lh / 2)), lw + bw, lh, FL_GRAY );
else if ( align & FL_ALIGN_TOP )
fl_draw_box( b, X - dx - bx + ((W / 2) - (lw / 2)), Y + ((H / 2) - (lh / 2)), lw + bw, lh, FL_GRAY );
}

lab.draw( X - dx, Y, W, H, align );


+ 2
- 0
Timeline/Timeline.C View File

@@ -168,6 +168,8 @@ Timeline::Timeline ( int X, int Y, int W, int H, const char* L ) : Fl_Overlay_Wi
}
}

/* rulers go above tracks... */
add( rulers );

/* make sure scrollbars are on top */
add( vscroll );


Loading…
Cancel
Save