summaryrefslogtreecommitdiff
path: root/gtk2_ardour/startup.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-03-09 13:44:22 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2013-03-09 13:44:22 +0000
commite701adea419300f2cf7e760f14e7b17b9046b478 (patch)
tree5c2fe2575f023bf73767ec89dfa61efc9f2049c8 /gtk2_ardour/startup.cc
parente1d730705636c7219da711eb46cbaf157849f560 (diff)
add code to display announcements, and parameterize several URL's used in the program
git-svn-id: svn://localhost/ardour2/branches/3.0@14197 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/startup.cc')
-rw-r--r--gtk2_ardour/startup.cc53
1 files changed, 53 insertions, 0 deletions
diff --git a/gtk2_ardour/startup.cc b/gtk2_ardour/startup.cc
index 303326e003..208364447c 100644
--- a/gtk2_ardour/startup.cc
+++ b/gtk2_ardour/startup.cc
@@ -32,6 +32,7 @@
#include "pbd/replace_all.h"
#include "pbd/whitespace.h"
#include "pbd/stacktrace.h"
+#include "pbd/openuri.h"
#include "ardour/filesystem_paths.h"
#include "ardour/recent_sessions.h"
@@ -551,7 +552,34 @@ ArdourStartup::setup_initial_choice_page ()
centering_vbox->pack_start (ic_new_session_button, false, true);
centering_vbox->pack_start (ic_existing_session_button, false, true);
+
+ if (ARDOUR_UI::instance()->announce_string() != "" ) {
+
+ Gtk::Frame *info_frame = manage(new Gtk::Frame);
+ info_frame->set_shadow_type(SHADOW_ETCHED_OUT);
+ centering_vbox->pack_start (*info_frame, false, false, 20);
+
+ Box *info_box = manage (new VBox);
+ info_box->set_border_width (12);
+ info_box->set_spacing (6);
+ info_box->set_name("mixbus_info_box");
+
+ info_box->pack_start (info_scroller_label, false, false);
+
+ info_frame->add (*info_box);
+ info_frame->show_all();
+
+ info_scroller_count = 0;
+ info_scroller_connection = Glib::signal_timeout().connect (mem_fun(*this, &ArdourStartup::info_scroller_update), 50);
+ Gtk::Button *updates_button = manage (new Gtk::Button (_("Check the website for more...")));
+
+ updates_button->signal_clicked().connect (mem_fun(*this, &ArdourStartup::updates_button_clicked) );
+ ARDOUR_UI::instance()->tooltips().set_tip (*updates_button, _("Click to open the program website in your web browser"));
+
+ info_box->pack_start (*updates_button, false, false);
+ }
+
ic_new_session_button.signal_button_press_event().connect(sigc::mem_fun(*this, &ArdourStartup::initial_button_clicked), false);
ic_new_session_button.signal_activate().connect(sigc::mem_fun(*this, &ArdourStartup::initial_button_activated), false);
@@ -1410,3 +1438,28 @@ ArdourStartup::been_here_before_path () const
// XXXX use more specific version so we can catch upgrades
return Glib::build_filename (user_config_directory (), ".a3");
}
+
+void
+ArdourStartup::updates_button_clicked ()
+{
+ //now open a browser window so user can see more
+ PBD::open_uri (Config->get_updates_url());
+}
+
+bool
+ArdourStartup::info_scroller_update()
+{
+ info_scroller_count++;
+
+ char buf[512];
+ snprintf (buf, std::min(info_scroller_count,sizeof(buf)-1), "%s", ARDOUR_UI::instance()->announce_string().c_str() );
+ buf[info_scroller_count] = NULL;
+ info_scroller_label.set_text (buf);
+ info_scroller_label.show();
+
+ if (info_scroller_count > ARDOUR_UI::instance()->announce_string().length()) {
+ info_scroller_connection.disconnect();
+ }
+
+ return true;
+}