From f95d814143060efc7a69164362a3311b3a3b54a4 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Tue, 10 Oct 2006 17:46:22 +0000 Subject: [PATCH] fix audio clock field widths, change minsec display to include fractional seconds, add and use thorwil's new icons git-svn-id: svn://localhost/ardour2/trunk@971 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/SConscript | 5 +- gtk2_ardour/ardev_common.sh | 2 +- gtk2_ardour/ardour_ui2.cc | 16 ++--- gtk2_ardour/audio_clock.cc | 83 ++++++++++++------------- gtk2_ardour/audio_clock.h | 1 + gtk2_ardour/editor.cc | 20 +++--- gtk2_ardour/icons/nudge_left.png | Bin 0 -> 263 bytes gtk2_ardour/icons/nudge_right.png | Bin 0 -> 252 bytes gtk2_ardour/icons/tool_audition.png | Bin 0 -> 314 bytes gtk2_ardour/icons/tool_gain.png | Bin 0 -> 417 bytes gtk2_ardour/icons/tool_object.png | Bin 0 -> 461 bytes gtk2_ardour/icons/tool_object.xpm | 54 ++++++++++++++++ gtk2_ardour/icons/tool_stretch.png | Bin 0 -> 284 bytes gtk2_ardour/icons/tool_zoom.png | Bin 0 -> 355 bytes gtk2_ardour/icons/transport_end.png | Bin 0 -> 284 bytes gtk2_ardour/icons/transport_loop.png | Bin 0 -> 472 bytes gtk2_ardour/icons/transport_play.png | Bin 0 -> 267 bytes gtk2_ardour/icons/transport_range.png | Bin 0 -> 277 bytes gtk2_ardour/icons/transport_record.png | Bin 0 -> 344 bytes gtk2_ardour/icons/transport_start.png | Bin 0 -> 320 bytes gtk2_ardour/icons/transport_stop.png | Bin 0 -> 203 bytes gtk2_ardour/icons/tw_edit_icons_07.xcf | Bin 0 -> 5600 bytes gtk2_ardour/icons/zoom_full.png | Bin 0 -> 365 bytes gtk2_ardour/icons/zoom_in.png | Bin 0 -> 354 bytes gtk2_ardour/icons/zoom_out.png | Bin 0 -> 346 bytes gtk2_ardour/utils.cc | 16 +++++ gtk2_ardour/utils.h | 3 +- 27 files changed, 137 insertions(+), 63 deletions(-) create mode 100644 gtk2_ardour/icons/nudge_left.png create mode 100644 gtk2_ardour/icons/nudge_right.png create mode 100644 gtk2_ardour/icons/tool_audition.png create mode 100644 gtk2_ardour/icons/tool_gain.png create mode 100644 gtk2_ardour/icons/tool_object.png create mode 100644 gtk2_ardour/icons/tool_object.xpm create mode 100644 gtk2_ardour/icons/tool_stretch.png create mode 100644 gtk2_ardour/icons/tool_zoom.png create mode 100644 gtk2_ardour/icons/transport_end.png create mode 100644 gtk2_ardour/icons/transport_loop.png create mode 100644 gtk2_ardour/icons/transport_play.png create mode 100644 gtk2_ardour/icons/transport_range.png create mode 100644 gtk2_ardour/icons/transport_record.png create mode 100644 gtk2_ardour/icons/transport_start.png create mode 100644 gtk2_ardour/icons/transport_stop.png create mode 100644 gtk2_ardour/icons/tw_edit_icons_07.xcf create mode 100644 gtk2_ardour/icons/zoom_full.png create mode 100644 gtk2_ardour/icons/zoom_in.png create mode 100644 gtk2_ardour/icons/zoom_out.png diff --git a/gtk2_ardour/SConscript b/gtk2_ardour/SConscript index 072965ca94..b60e6f00c6 100644 --- a/gtk2_ardour/SConscript +++ b/gtk2_ardour/SConscript @@ -206,7 +206,8 @@ fft_graph.cc fft_result.cc """) -pixmap_files=glob.glob('pixmaps/*.xpm') +pixmap_files = glob.glob('pixmaps/*.xpm') +icon_files = glob.glob ('icons/*.png') intl_files = gtkardour_files + glob.glob('*.h') @@ -304,6 +305,7 @@ env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour2'), 'ardour # data files env.Alias('install', env.Install(os.path.join(install_prefix, 'share/ardour2'), 'splash.ppm')) env.Alias('install', env.Install(os.path.join(install_prefix, 'share/ardour2/pixmaps'), pixmap_files)) +env.Alias('install', env.Install(os.path.join(install_prefix, 'share/ardour2/icons'), icon_files)) #dist @@ -318,6 +320,7 @@ env.Alias ('tarball', env.Distribute (env['DISTTREE'], gtkardour_files + vst_files + pixmap_files + + icon_files + skipped_files + audiounit_files + fft_analysis_files + diff --git a/gtk2_ardour/ardev_common.sh b/gtk2_ardour/ardev_common.sh index df4bb025c0..165db68369 100755 --- a/gtk2_ardour/ardev_common.sh +++ b/gtk2_ardour/ardev_common.sh @@ -2,7 +2,7 @@ cd `dirname "$0"`/.. #export G_DEBUG=fatal_criticals -export ARDOUR_PATH=gtk2_ardour/glade:gtk2_ardour/pixmaps:gtk2_ardour +export ARDOUR_PATH=gtk2_ardour/icons:gtk2_ardour/pixmaps:gtk2_ardour export LD_LIBRARY_PATH=libs/surfaces/control_protocol:libs/ardour:libs/midi++2:libs/pbd:libs/soundtouch:libs/gtkmm2ext:libs/sigc++2:libs/glibmm2:libs/gtkmm2/atk:libs/gtkmm2/pango:libs/gtkmm2/gdk:libs/gtkmm2/gtk:libs/libgnomecanvasmm:libs/libsndfile:libs/appleutility:$LD_LIBRARY_PATH diff --git a/gtk2_ardour/ardour_ui2.cc b/gtk2_ardour/ardour_ui2.cc index 337362d9da..9a964fe519 100644 --- a/gtk2_ardour/ardour_ui2.cc +++ b/gtk2_ardour/ardour_ui2.cc @@ -242,26 +242,26 @@ ARDOUR_UI::setup_transport () Widget* w; stop_button.set_active (true); - - w = manage (new Image (Stock::MEDIA_PREVIOUS, ICON_SIZE_BUTTON)); + + w = manage (new Image (get_icon (X_("transport_start")))); w->show(); goto_start_button.add (*w); - w = manage (new Image (Stock::MEDIA_NEXT, ICON_SIZE_BUTTON)); + w = manage (new Image (get_icon (X_("transport_end")))); w->show(); goto_end_button.add (*w); - w = manage (new Image (Stock::MEDIA_PLAY, ICON_SIZE_BUTTON)); + w = manage (new Image (get_icon (X_("transport_play")))); w->show(); roll_button.add (*w); - w = manage (new Image (Stock::MEDIA_STOP, ICON_SIZE_BUTTON)); + w = manage (new Image (get_icon (X_("transport_stop")))); w->show(); stop_button.add (*w); - w = manage (new Image (Stock::MEDIA_PLAY, ICON_SIZE_BUTTON)); + w = manage (new Image (get_icon (X_("transport_range")))); w->show(); play_selection_button.add (*w); - w = manage (new Image (Stock::MEDIA_RECORD, ICON_SIZE_BUTTON)); + w = manage (new Image (get_icon (X_("transport_record")))); w->show(); rec_button.add (*w); - w = manage (new Image (get_xpm("loop.xpm"))); + w = manage (new Image (get_icon (X_("transport_loop")))); w->show(); auto_loop_button.add (*w); diff --git a/gtk2_ardour/audio_clock.cc b/gtk2_ardour/audio_clock.cc index d04285c5ef..575f45ca38 100644 --- a/gtk2_ardour/audio_clock.cc +++ b/gtk2_ardour/audio_clock.cc @@ -326,34 +326,7 @@ AudioClock::on_realize () /* styles are not available until the widgets are bound to a window */ - switch (_mode) { - case SMPTE: - Gtkmm2ext::set_size_request_to_display_given_text (hours_label, "-88", 0, 2); - Gtkmm2ext::set_size_request_to_display_given_text (minutes_label, "88", 0, 2); - Gtkmm2ext::set_size_request_to_display_given_text (seconds_label, "88", 0, 2); - Gtkmm2ext::set_size_request_to_display_given_text (frames_label, "88", 0, 2); - break; - - case BBT: - Gtkmm2ext::set_size_request_to_display_given_text (bars_label, "-888", 0, 2); - Gtkmm2ext::set_size_request_to_display_given_text (beats_label, "88", 0, 2); - Gtkmm2ext::set_size_request_to_display_given_text (ticks_label, "8888", 0, 2); - break; - - case MinSec: - Gtkmm2ext::set_size_request_to_display_given_text (ms_hours_label, "99", 0, 2); - Gtkmm2ext::set_size_request_to_display_given_text (ms_minutes_label, "99", 0, 2); - Gtkmm2ext::set_size_request_to_display_given_text (ms_seconds_label, "99", 0, 2); - break; - - case Frames: - Gtkmm2ext::set_size_request_to_display_given_text (audio_frames_label, "4294967296", 0, 2); - break; - - case Off: - break; - - } + set_size_requests (); } void @@ -436,13 +409,13 @@ AudioClock::set_minsec (nframes_t when, bool force) secs = left / (float) session->frame_rate(); if (force || hrs != ms_last_hrs) { - sprintf (buf, "%d", hrs); + sprintf (buf, "%02d", hrs); ms_hours_label.set_text (buf); ms_last_hrs = hrs; } if (force || mins != ms_last_mins) { - sprintf (buf, "%d", mins); + sprintf (buf, "%02d", mins); ms_minutes_label.set_text (buf); ms_last_mins = mins; } @@ -1775,40 +1748,66 @@ AudioClock::set_mode (Mode m) } _mode = m; - + switch (_mode) { case SMPTE: clock_base.add (smpte_packer_hbox); - Gtkmm2ext::set_size_request_to_display_given_text (hours_label, "-88", 0, 2); - Gtkmm2ext::set_size_request_to_display_given_text (minutes_label, "88", 0, 2); - Gtkmm2ext::set_size_request_to_display_given_text (seconds_label, "88", 0, 2); - Gtkmm2ext::set_size_request_to_display_given_text (frames_label, "88", 0, 2); break; case BBT: clock_base.add (bbt_packer_hbox); - Gtkmm2ext::set_size_request_to_display_given_text (bars_label, "-888", 0, 2); - Gtkmm2ext::set_size_request_to_display_given_text (beats_label, "88", 0, 2); - Gtkmm2ext::set_size_request_to_display_given_text (ticks_label, "8888", 0, 2); break; case MinSec: clock_base.add (minsec_packer_hbox); - Gtkmm2ext::set_size_request_to_display_given_text (ms_hours_label, "99", 0, 2); - Gtkmm2ext::set_size_request_to_display_given_text (ms_minutes_label, "99", 0, 2); - Gtkmm2ext::set_size_request_to_display_given_text (ms_seconds_label, "99", 0, 2); break; case Frames: clock_base.add (frames_packer_hbox); - Gtkmm2ext::set_size_request_to_display_given_text (audio_frames_label, "4294967296", 0, 2); + break; case Off: break; } + set_size_requests (); + set (last_when, true); clock_base.show_all (); key_entry_state = 0; } +void +AudioClock::set_size_requests () +{ + /* note that in some fonts, "88" is narrower than "00", hence the 2 pixel padding */ + + switch (_mode) { + case SMPTE: + Gtkmm2ext::set_size_request_to_display_given_text (hours_label, "-88", 2, 2); + Gtkmm2ext::set_size_request_to_display_given_text (minutes_label, "88", 2, 2); + Gtkmm2ext::set_size_request_to_display_given_text (seconds_label, "88", 2, 2); + Gtkmm2ext::set_size_request_to_display_given_text (frames_label, "88", 2, 2); + break; + + case BBT: + Gtkmm2ext::set_size_request_to_display_given_text (bars_label, "-888", 2, 2); + Gtkmm2ext::set_size_request_to_display_given_text (beats_label, "88", 2, 2); + Gtkmm2ext::set_size_request_to_display_given_text (ticks_label, "8888", 2, 2); + break; + + case MinSec: + Gtkmm2ext::set_size_request_to_display_given_text (ms_hours_label, "99", 2, 2); + Gtkmm2ext::set_size_request_to_display_given_text (ms_minutes_label, "99", 2, 2); + Gtkmm2ext::set_size_request_to_display_given_text (ms_seconds_label, "99.999", 2, 2); + break; + + case Frames: + Gtkmm2ext::set_size_request_to_display_given_text (audio_frames_label, "4294967296", 2, 2); + break; + + case Off: + break; + + } +} diff --git a/gtk2_ardour/audio_clock.h b/gtk2_ardour/audio_clock.h index d55a4b8610..e0431ba16e 100644 --- a/gtk2_ardour/audio_clock.h +++ b/gtk2_ardour/audio_clock.h @@ -176,6 +176,7 @@ class AudioClock : public Gtk::HBox void setup_events (); void smpte_offset_changed (); + void set_size_requests (); static const uint32_t field_length[(int)AudioFrames+1]; }; diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index ecf3870c7f..ed09a03597 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -666,8 +666,8 @@ Editor::Editor (AudioEngine& eng) /* nudge stuff */ - nudge_forward_button.add (*(manage (new Image (get_xpm("right_arrow.xpm"))))); - nudge_backward_button.add (*(manage (new Image (get_xpm("left_arrow.xpm"))))); + nudge_forward_button.add (*(manage (new Image (::get_icon("nudge_right"))))); + nudge_backward_button.add (*(manage (new Image (::get_icon("nudge_left"))))); ARDOUR_UI::instance()->tooltips().set_tip (nudge_forward_button, _("Nudge Region/Selection Forwards")); ARDOUR_UI::instance()->tooltips().set_tip (nudge_backward_button, _("Nudge Region/Selection Backwards")); @@ -2468,22 +2468,22 @@ Editor::setup_toolbar () vector mouse_mode_buttons; - mouse_move_button.add (*(manage (new Image (get_xpm("tool_object.xpm"))))); + mouse_move_button.add (*(manage (new Image (::get_icon("tool_object"))))); mouse_move_button.set_relief(Gtk::RELIEF_NONE); mouse_mode_buttons.push_back (&mouse_move_button); mouse_select_button.add (*(manage (new Image (get_xpm("tool_range.xpm"))))); mouse_select_button.set_relief(Gtk::RELIEF_NONE); mouse_mode_buttons.push_back (&mouse_select_button); - mouse_gain_button.add (*(manage (new Image (get_xpm("tool_gain.xpm"))))); + mouse_gain_button.add (*(manage (new Image (::get_icon("tool_gain"))))); mouse_gain_button.set_relief(Gtk::RELIEF_NONE); mouse_mode_buttons.push_back (&mouse_gain_button); - mouse_zoom_button.add (*(manage (new Image (get_xpm("tool_zoom.xpm"))))); + mouse_zoom_button.add (*(manage (new Image (::get_icon("tool_zoom"))))); mouse_zoom_button.set_relief(Gtk::RELIEF_NONE); mouse_mode_buttons.push_back (&mouse_zoom_button); - mouse_timefx_button.add (*(manage (new Image (get_xpm("tool_stretch.xpm"))))); + mouse_timefx_button.add (*(manage (new Image (::get_icon("tool_stretch"))))); mouse_timefx_button.set_relief(Gtk::RELIEF_NONE); mouse_mode_buttons.push_back (&mouse_timefx_button); - mouse_audition_button.add (*(manage (new Image (get_xpm("tool_audition.xpm"))))); + mouse_audition_button.add (*(manage (new Image (::get_icon("tool_audition"))))); mouse_audition_button.set_relief(Gtk::RELIEF_NONE); mouse_mode_buttons.push_back (&mouse_audition_button); @@ -2564,17 +2564,17 @@ Editor::setup_toolbar () zoom_box.set_border_width (2); zoom_in_button.set_name ("EditorTimeButton"); - zoom_in_button.add (*(manage (new Image (get_xpm("zoom_in.xpm"))))); + zoom_in_button.add (*(manage (new Image (::get_icon("zoom_in"))))); zoom_in_button.signal_clicked().connect (bind (mem_fun(*this, &Editor::temporal_zoom_step), false)); ARDOUR_UI::instance()->tooltips().set_tip (zoom_in_button, _("Zoom In")); zoom_out_button.set_name ("EditorTimeButton"); - zoom_out_button.add (*(manage (new Image (get_xpm("zoom_out.xpm"))))); + zoom_out_button.add (*(manage (new Image (::get_icon("zoom_out"))))); zoom_out_button.signal_clicked().connect (bind (mem_fun(*this, &Editor::temporal_zoom_step), true)); ARDOUR_UI::instance()->tooltips().set_tip (zoom_out_button, _("Zoom Out")); zoom_out_full_button.set_name ("EditorTimeButton"); - zoom_out_full_button.add (*(manage (new Image (get_xpm("zoom_full.xpm"))))); + zoom_out_full_button.add (*(manage (new Image (::get_icon("zoom_full"))))); zoom_out_full_button.signal_clicked().connect (mem_fun(*this, &Editor::temporal_zoom_session)); ARDOUR_UI::instance()->tooltips().set_tip (zoom_out_full_button, _("Zoom to Session")); diff --git a/gtk2_ardour/icons/nudge_left.png b/gtk2_ardour/icons/nudge_left.png new file mode 100644 index 0000000000000000000000000000000000000000..c88547771a7204049fcdf8823f643e811eef3f85 GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CP!3HERJk;|9QY`6?zK#qG8~eHcB(eheY)Rhk zEvtvs0GoV!rp00i_>zopr04Y{l AeEaiF3QPZ!4!jq_J0ZRBlm;9*|BAYrz= zqV)vJx@9FZn+0#25b2n;<>&kwOi;J6CHuFI38laG5iEBiO zbAE1aYF-J0b5UwyNotBhd1gt5g1e`0KzJjcI8f0fPZ!4!jq_(OZRBDyX(+ zExYyyZ=O7u+*usIDEt1xA6`}(Rx|G`IK;a={QOaQrp5{Ro(X9)v>3GC*UHT`)zNo- z!g63A8^apcClOv3(;8-$8y?H%c_Wa BZp{Dy literal 0 HcmV?d00001 diff --git a/gtk2_ardour/icons/tool_gain.png b/gtk2_ardour/icons/tool_gain.png new file mode 100644 index 0000000000000000000000000000000000000000..f54be9403a9ce92eb094ead4419d4f2051cc169c GIT binary patch literal 417 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~e!3HF=pW8M9DVB6cUq=Rpjs4tz5?O(Kwj^(N z7l!{JxM1({$v_d#0*}aI1_o|n5N2eUHAey{$X?><>&kwOi;GK4GUAr$G@y`ViEBiO zbAE1aYF-J0b5UwyNotBhd1gt5g1e`0KzJjcI8f0~PZ!4!jq`ISZS*=4AmDml=VY_V zrWr{G6LJq6x~KG;vFxC~XLjym{wKnR*fxF@pZ50cHLndEEE|QN+){a$_i51v=F5A^ z-|sXwP~(iBdGlbq%IBA9!p}aRI}&n0<-nP94esZEPn~{Yd5Py~1&({+tEV>HFFSYA z@;ld@cdu1tdv=zbTe&Vf*G&3o;U89;mc$<$Lx~i*T9V3ceT0}`9CPy z;>3RV`T@=lMpukeXEem{sBinvceH%r-s5LDEEb(93;)Z^KmUg$%i~u*z(8Q|boFyt I=akR{06!Y2NB{r; literal 0 HcmV?d00001 diff --git a/gtk2_ardour/icons/tool_object.png b/gtk2_ardour/icons/tool_object.png new file mode 100644 index 0000000000000000000000000000000000000000..0b5739e5a93d33dc2095b489cf91f0cbb9af40d3 GIT binary patch literal 461 zcmV;;0W$uHP)eSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00AXQ zL_t(2&y|v~YQr!PhVP_;9L1KM;86Mkfs7@Y3SPPvOdlX~$)ofc`V=0zb@1Y?6p}GR zp_FRMq|~^WO1Vx2H#SN7!@o%A)A4aYM9?e%%zWQ}1%RvlyRNnlMx)W=YPF)_aQJiz zfWcl6@vPVD0U`=GAuT{vRTtJ;u-5vB=pmx_FF;+_=gv7W##~A%*HX%L6h+U7c-=YG zp1@lngw zDq{>e=cp@PfIkjA&wI=B92je c #D3D3D3", +", c #0A0A0A", +"' c #070707", +") c #E5E5E5", +"! c #292929", +"~ c #B0B0B0", +"{ c #262626", +"] c #5C5C5C", +"^ c #333333", +"/ c #0E0E0E", +"( c #111111", +"_ c #3D3D3D", +": c #F4F4F4", +"< c #FFFFFF", +"[ c #EBEBEB", +"} c #D0D0D0", +"| c #030303", +"1 c #F1F1F1", +"2 c #FDFDFD", +"3 c #C3C3C3", +"4 c #101010", +"5 c #141414", +"6 c #F2F2F2", +"7 c #4E4E4E", +"8 c #686868", +"9 c #0B0B0B", +"0 c #020202", +" .+. ", +" @#$ ", +" %&* ", +" +=-.. ", +" ;>.,,-.. ", +" .')!~{]^/ ", +" (_:<<<[}| ", +" '12<<<<<| ", +" -~<<<<<34 ", +" .56<<<<7| ", +" /8<<<),. ", +" .9|||0- "}; diff --git a/gtk2_ardour/icons/tool_stretch.png b/gtk2_ardour/icons/tool_stretch.png new file mode 100644 index 0000000000000000000000000000000000000000..a599fbe51d608af74ebc0366f1a549ac3420e474 GIT binary patch literal 284 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~e!3HF=pW8M9DVB6cUq=Rpjs4tz5?O(Kwj^(N z7l!{JxM1({$v_d#0*}aI1_o|n5N2eUHAey{$X?><>&kwOi;J5{?&T%faG;Q6iEBiO zbAE1aYF-J0b5UwyNotBhd1gt5g1e`0KzJjcI8afEr;B5V#`(3A0=W(-@HkK2SY5ez z?nd*|bv&=P9Fkyj$vT_8QK;dA{{#TqXbj literal 0 HcmV?d00001 diff --git a/gtk2_ardour/icons/tool_zoom.png b/gtk2_ardour/icons/tool_zoom.png new file mode 100644 index 0000000000000000000000000000000000000000..f6b5e2781d2f2887b7575a062fc1003d1e9a6782 GIT binary patch literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~e!3HF=pW8M9DVB6cUq=Rpjs4tz5?O(Kwj^(N z7l!{JxM1({$v_d#0*}aI1_o|n5N2eUHAey{$X?><>&kwOi;GLpAXL-Z7APcH;u=xn zoS&PUnpeW$T$GwvlA5AWo>`Ki;O^-g5Z=fq4pg+;)5S4Fx+`fTzQUt%Tbcm@-%POffvn}r? z9!XPvZo{--x3SWTcPt0yeEuP5u$hq|du`0JYhDaFp`SJdTrDWy_UK*6)f=oXErJ(W zl$w+dnHC&S(piAZriZ5Q?B@OZ4&Ku*i7jV$U^pJT;3|9V{psl&_pBA%lRd#L t^||Cuy@~4^MT=%Wzu%zB^uR@kU;5HLi+8C?NkDHfc)I$ztaD0e0swpve|G=? literal 0 HcmV?d00001 diff --git a/gtk2_ardour/icons/transport_end.png b/gtk2_ardour/icons/transport_end.png new file mode 100644 index 0000000000000000000000000000000000000000..d9cc8a172161477fd399845dbe09202145b80712 GIT binary patch literal 284 zcmeAS@N?(olHy`uVBq!ia0vp^{6H+p!3HGXMV6caQY`6?zK#qG8~eHcB(eheoCO|{ z#S9F5bAb2=W9he+MxY>jiKnkC`!y~uK4C?!Wfvy`g(OQ{BTAg}b8}PkN*J7rQWHy3 zQxwWGOEMJPJ$(bh8~Mb6irPF~978Nl@13$+@PGo3bE=s4wgk?y1YwEL%%CUE2Re5D z=sWjb)Xj_`M?jn524hO-0SRTsf-Bc66g>MIuJ1a?=O{17ajd}oL9;ze-44YW&GJo^ zGgN}Ttb8Udog$v2ZX@e$?EJy(derfgFL~eY&piEKN8RV#wmqSr>`qTldD`}L>TAvW aZ<#ecyKU2tZSnxRh{4m<&t;ucLK6T#i(wT2 literal 0 HcmV?d00001 diff --git a/gtk2_ardour/icons/transport_loop.png b/gtk2_ardour/icons/transport_loop.png new file mode 100644 index 0000000000000000000000000000000000000000..1ea8fdaf1887a28fccceb8461916229159f1ea11 GIT binary patch literal 472 zcmV;}0Vn>6P)X1^@s6JPCf300004XF*Lt006O% z3;baP00009a7bBm000i0000ie0d@9-fdBvi2XskIMF-Xj3Jw%2r82Ha0000PbVXQn zLvL+uWo~o;Lvm$dbY)~9cWHEJAV*0}P*;Ht7XSbOLP${G~tvc+yW_Ef>U&LK=>|Lk7azvkB-|XSs(^~%#7y&Y^%UQeeA?5 zzfOyO-A{u^G6G%!5S z(=@TJ>s8oYAR=omwbl!WwKm*Guu$ej%8^XkwhjGAd(^gV$Sf-JB11=GO!#Wt*k2kQ zGBd`=vjPBa077H6))K_ZDTR`qa}vJ=&^*s1$t=ra&?A}b3IMY#BT3Hl96);(aR8nX zq}cV^IF0~-vMl5HGoCLgQQna~0{Q}gzV875P1D3alk4Nvb1dGGJ;K;L{&WOZjz9k~ z)qfbs;Vl+fz|NXhbWJBYu}SBDHHVe^VI2~yoYD|wcv_XW%)h9>yY&qV>%UIuuh{hf O0000Ah literal 0 HcmV?d00001 diff --git a/gtk2_ardour/icons/transport_play.png b/gtk2_ardour/icons/transport_play.png new file mode 100644 index 0000000000000000000000000000000000000000..5e0c2dcd78809ca2a4ce119995c799edb22f448a GIT binary patch literal 267 zcmeAS@N?(olHy`uVBq!ia0vp@KrG3@1|(mtS@ID`v7|ftIx;Y9?C1WI$O`0h7I;J! zGcfSY0pcT!rQcc_fr9KMp1!W^*SNU&#FZP4lbCYGe8 zD3oWGWGJ|M`UZqI@`(c#m3q23hFF~5dgU}Hvmp=LL&aXz*d3hnYeQd7zTCFqjdQ(1 z@qdGDtqk*8Y#YP_G)sCE6I!lF?3(JZe|GV<1;4E>EPl5jJ=Sr(Rr9@4mbY8l%T{Y` zpZNQ{=f}B^u6O^}oYztD?UCmDCVnr5hU~Q!?pO40Yuu~O=h1tqbLEa~7tjF=p00i_ I>zopr08|QLoB#j- literal 0 HcmV?d00001 diff --git a/gtk2_ardour/icons/transport_range.png b/gtk2_ardour/icons/transport_range.png new file mode 100644 index 0000000000000000000000000000000000000000..a46ea1a6ef626996fad9e19fa848e13e959224b6 GIT binary patch literal 277 zcmeAS@N?(olHy`uVBq!ia0vp^qChOk!3HGnT}^!pq*&4&eH|GXHuiJ>Nn{1`ISV`@ ziy0XB<^b^##?o&sjX**65>H=O_G?^Rd}8w3HdxdHg(OQ{BTAg}b8}PkN*J7rQWHy3 zQxwWGOEMJPJ$(bh8~Mb6it0UG978;gzrAA3*I>ZI9H9Q_U$~j_-{kI1rpZt2l$Nqu zY~9Voz;0{ux1vx>nXy5|5(ej@)Wnk1 z6ovB4k_-iRPv3y>Mm}+%qC=i8jv*GO-%d5;J7mD)YCl)Pl4<*gTZ^BH*?C>NcPM%N zffsL$6ILl`XfB*6QE}=0rDrF*a>Rd>@=g7|+~cI`Cqd-~mIiIlk7w0{7`iw@r>41; zFW-In%!*Ya6N6%=uhhz3krg_N!QlCswNK`RFMWLN)V+{j1mdKI;Vst0HZF7YybcN literal 0 HcmV?d00001 diff --git a/gtk2_ardour/icons/transport_start.png b/gtk2_ardour/icons/transport_start.png new file mode 100644 index 0000000000000000000000000000000000000000..d27bcb5b8d5d775057091c0ec693182571950b0b GIT binary patch literal 320 zcmeAS@N?(olHy`uVBq!ia0vp^{6H+p!3HGXMV6caQY`6?zK#qG8~eHcB(eheoCO|{ z#S9F5bAb2=W9he+MxY>jiKnkC`!y~uJ|Uy&%nSK|LXst}5hc#~xw)x%B@E6*sfi`2 zDGKG8B^e6tp1uL$jeO!jMXNkr978NlZ@qGmlUY%K^+LV}_vOQ76OGm!xGnNPx0U1G z+M=RPq0OuNgpD?A(An3|J)iN-=K{AMYxIjgo^hM8bMEBxkqL><-pvs+-_dQoquD>8 zTYn)N|3fbShXTSEh4>23MVc@>+>y@ze%Z49_V?pcE`@oN&wXs6(vt8yox#aPD0$1n zs>P8Fs}dJC>@VNVTJiqu50QjhDy9q#ce10m9MxL7<-`2#%PaHuGt4~D@tytM3tynC O89ZJ6T-G@yGywol?RfA2 literal 0 HcmV?d00001 diff --git a/gtk2_ardour/icons/transport_stop.png b/gtk2_ardour/icons/transport_stop.png new file mode 100644 index 0000000000000000000000000000000000000000..a92a2ca64e2af6353a13aa2b00bd96b56e436428 GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^fNn{1`ISV`@ ziy0XB<^b^##?o&sjX**65>H=O_G?^Rd=gx)?>KdsML{y9@X{}W$3i@d6Ii@1xxFnBuS;|#w*V5k60GS?^=^wt zlO3seS9d&?N_KX1*M@4^6S2;1on6ry>rvO0*xVLfzI3@&reIdsqFM~yJjGB)9-W?% zp*`I@+G5F$M6{vanJ`q-I~8bSbvrwfDJUP?8W*j5I@{a3sv4>rh zPhq|P~gVQ?aeldJ*S=#Oe$R+Pw72w|P7$oHs80?V=`Z#?cae)t51(4|LosQ{RQ`DCmUXY5$%-C#8}6JU+m( zJ*H~XSRVlM0Qq=qKp^=oB9+Yn_?1;DyoeNOYh*yGaP@6s@8HQf{cH>{sTf^N0XB(M zPAi)zJ)^{=CH$1nwIH23n(#XEIZMniNb#r&^H zyBOZ6!o3vIo0+j2oi_}z5A7T3LGk9-EA~AJd#iM<`XZX7JVGz^p{I%gXe%@kqQa8Z z8w4l=kVobwpx1(ZXe=nEiu#qOq?_@a)R{Gp(yjw|GgzqNjJ4kS-Hq0I`Y+b{#>HXQ zxOhgfzics0e7^ASRY5tgo%2#$IxiW+6(}AeH?EYa+**3x4Y#%yKsA+HJL^LneAw>j zXbQIuZo>VvA9To|+Y8J( z6V3rR%f;hSSzI|y_`jo2D2y~EBUeH0nAQv6^5rxZxKw*=(Z+@%_^=%LK{kL#NH1AE z0?*ffJLQAKHO`t7^1xLCkzk6{S?T7Q5i-KZAT~ai*nr&D+9edmx_;8T2t8Wzw8n{1r13yd>kmvS=h*kA6UtS=bU5UN=%81x|l(^sBrlm}Z* zn{6g)LYU|b--lE8^9cx59QaB)M=B%Mj`L?0e1p=69z;-D?(1^OoaS$XLBthusI+xY z*bL(8GV_HCC)WljOa*NI3TcE!pVApCWqBRYFaYx#Tpxz1JIzt{v(>tFLUcVNvh(Pv zvR4lT+sY9Mwvl#A>Q&x&XG}uwddQNglx@mwSvF=A{;VsyVZ4GM)u9#=S4rDi5NVH7 zrnO3|YNdy0ynzNYgVaD3$nGjhZ>1~Pjedn%X|9DBRfDqpU=>VgXh&gBC2uacjG!3} zrW?!a`+7F{zd8i}z1bVDq4)?olRoeFRyosLGnZoKJkr+;*Fa!vum+z{3I|9}ozE9k z6nqw^)hf~(;BKCAn@mi*%QfjU(T^31cE}=Ia*Sk^@UNqA8m3 zK8wDdbQt=EP6+Bwim|g0)k_|eR`NkJ+YZ1l{x5HPIT=enpk<`j4l^yK?1NWu-!7){ z-J@f;d4@ieQ92M~mP}T-I0{SQ?a%5$_z+MF%5*;rqd=cHb zdH&TuzkK$#@rZ1(d6#)2dw_ol`ra#xybbIy=(yl8LCQs99&cOgNx?i0O>3S%0Ak<4 A4gdfE literal 0 HcmV?d00001 diff --git a/gtk2_ardour/icons/zoom_full.png b/gtk2_ardour/icons/zoom_full.png new file mode 100644 index 0000000000000000000000000000000000000000..fdb2e1dcf27c1b391036c8b78cb869f35d6e7b71 GIT binary patch literal 365 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~e!3HF=pW8M9DVB6cUq=Rpjs4tz5?O(Kwj^(N z7l!{JxM1({$v_d#0*}aI1_o|n5N2eUHAey{$X?><>&kwOi;GK?z4J%38Bj>F#5JPC zIX^cyHLrxhxhOTUBsE2$JhLQ2!QIn0AiR-J9H{81r;B5V#`(3A4EYWj@VM4b^q+We z`iZz5jFZ~$-H0{XtWemxL3-i&pa9OL4M(Oc9S{7J^H)OUqMosIsHscKDycLxy}Qbt z)0^jfmSng)SJ1Iso#EM>^YV;oW=sidrxst0;%xAqYooeK>U$T1$ES_u<*TyRFuAk{ zeypewXK-V2ZP86=o*CpdJ&228!RuYiBfK2FUN(i*e@%ER{%hZUzq*`oM(<(+9_N`g zmRkk(NKa@z_f7bTMSBfzhC;jMKeidp3~xLhv7O{Q6HvPHuq)6*44$rjF6*2UngA01 Be;5D& literal 0 HcmV?d00001 diff --git a/gtk2_ardour/icons/zoom_in.png b/gtk2_ardour/icons/zoom_in.png new file mode 100644 index 0000000000000000000000000000000000000000..b3ef4e8ac891e3f28ce1d432db0340b5d1372c34 GIT binary patch literal 354 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~e!3HF=pW8M9DVB6cUq=Rpjs4tz5?O(Kwj^(N z7l!{JxM1({$v_d#0*}aI1_o|n5N2eUHAey{$X?><>&kwOi;GKGk#~KiFHlIb#5JPC zIX^cyHLrxhxhOTUBsE2$JhLQ2!QIn0AiR-J9H?lQr;B5V#`&$6Y_nJldD<>&kwOi;GLh{6WIsSfG$(iEBiO zbAE1aYF-J0b5UwyNotBhd1gt5g1e`0KzJjcI8f0hPZ!4!jq_VCIeM`f^0Yn7pIH1v z=x+Z#hZ9NXE}u>{TX&ZuZsC7Bh4r%?k8SMhlHgdn)J7$j<;5JqjXSGnO1_H|+<5jK zho>2JpE+{(wUB}Fs;+z1 zlkRQ)?iZSv_9vgUzOH$7e8jY;rTH)43C%craM!y2Nepr4I`&CT@J!{m{#4^q$1`Wb j^4h<$1uiOgnX8zu_59_D|8n&S(De+Su6{1-oD!M +get_icon (const char* cname) +{ + string name = cname; + name += X_(".png"); + + string path = ARDOUR::find_data_file (name, "icons"); + + if (path.empty()) { + fatal << string_compose (_("cannot find icon image for %1"), name) << endmsg; + /*NOTREACHED*/ + } + + return Gdk::Pixbuf::create_from_file (path); +} + string longest (vector& strings) { diff --git a/gtk2_ardour/utils.h b/gtk2_ardour/utils.h index a48a32c10e..bb2a21d6c3 100644 --- a/gtk2_ardour/utils.h +++ b/gtk2_ardour/utils.h @@ -76,7 +76,8 @@ void set_color (Gdk::Color&, int); bool key_press_focus_accelerator_handler (Gtk::Window& window, GdkEventKey* ev); -Glib::RefPtr get_xpm(std::string); +Glib::RefPtr get_xpm (std::string); +Glib::RefPtr get_icon (const char*); static std::map > xpm_map; const char* const *get_xpm_data (std::string path); std::string longest (std::vector&); -- 2.30.2