1 |
/* |
/* |
2 |
* Copyright (C) 2006-2011 Andreas Persson |
* Copyright (C) 2006-2012 Andreas Persson |
3 |
* |
* |
4 |
* This program is free software; you can redistribute it and/or |
* This program is free software; you can redistribute it and/or |
5 |
* modify it under the terms of the GNU General Public License as |
* modify it under the terms of the GNU General Public License as |
20 |
#include <iostream> |
#include <iostream> |
21 |
#include <cstring> |
#include <cstring> |
22 |
|
|
23 |
|
#include <glibmm/convert.h> |
24 |
|
#include <glibmm/dispatcher.h> |
25 |
|
#include <glibmm/miscutils.h> |
26 |
|
#include <glibmm/stringutils.h> |
27 |
#include <gtkmm/aboutdialog.h> |
#include <gtkmm/aboutdialog.h> |
28 |
#include <gtkmm/filechooserdialog.h> |
#include <gtkmm/filechooserdialog.h> |
29 |
#include <gtkmm/messagedialog.h> |
#include <gtkmm/messagedialog.h> |
258 |
m_VBox.pack_start(m_DimRegionChooser, Gtk::PACK_SHRINK); |
m_VBox.pack_start(m_DimRegionChooser, Gtk::PACK_SHRINK); |
259 |
m_VBox.pack_start(m_StatusBar, Gtk::PACK_SHRINK); |
m_VBox.pack_start(m_StatusBar, Gtk::PACK_SHRINK); |
260 |
|
|
261 |
|
set_file_is_shared(false); |
262 |
|
|
263 |
// Status Bar: |
// Status Bar: |
264 |
m_StatusBar.pack_start(m_AttachedStateLabel, Gtk::PACK_SHRINK); |
m_StatusBar.pack_start(m_AttachedStateLabel, Gtk::PACK_SHRINK); |
265 |
m_StatusBar.pack_start(m_AttachedStateImage, Gtk::PACK_SHRINK); |
m_StatusBar.pack_start(m_AttachedStateImage, Gtk::PACK_SHRINK); |
362 |
|
|
363 |
file = 0; |
file = 0; |
364 |
file_is_changed = false; |
file_is_changed = false; |
|
set_file_is_shared(false); |
|
365 |
|
|
366 |
show_all_children(); |
show_all_children(); |
367 |
|
|
465 |
void Loader::progress_callback(float fraction) |
void Loader::progress_callback(float fraction) |
466 |
{ |
{ |
467 |
{ |
{ |
468 |
Glib::Mutex::Lock lock(progressMutex); |
Glib::Threads::Mutex::Lock lock(progressMutex); |
469 |
progress = fraction; |
progress = fraction; |
470 |
} |
} |
471 |
progress_dispatcher(); |
progress_dispatcher(); |
473 |
|
|
474 |
void Loader::thread_function() |
void Loader::thread_function() |
475 |
{ |
{ |
476 |
printf("thread_function self=%x\n", Glib::Thread::self()); |
printf("thread_function self=%x\n", Glib::Threads::Thread::self()); |
477 |
printf("Start %s\n", filename); |
printf("Start %s\n", filename); |
478 |
RIFF::File* riff = new RIFF::File(filename); |
RIFF::File* riff = new RIFF::File(filename); |
479 |
gig = new gig::File(riff); |
gig = new gig::File(riff); |
493 |
|
|
494 |
void Loader::launch() |
void Loader::launch() |
495 |
{ |
{ |
496 |
|
#ifdef OLD_THREADS |
497 |
thread = Glib::Thread::create(sigc::mem_fun(*this, &Loader::thread_function), true); |
thread = Glib::Thread::create(sigc::mem_fun(*this, &Loader::thread_function), true); |
498 |
|
#else |
499 |
|
thread = Glib::Threads::Thread::create(sigc::mem_fun(*this, &Loader::thread_function)); |
500 |
|
#endif |
501 |
printf("launch thread=%x\n", thread); |
printf("launch thread=%x\n", thread); |
502 |
} |
} |
503 |
|
|
505 |
{ |
{ |
506 |
float res; |
float res; |
507 |
{ |
{ |
508 |
Glib::Mutex::Lock lock(progressMutex); |
Glib::Threads::Mutex::Lock lock(progressMutex); |
509 |
res = progress; |
res = progress; |
510 |
} |
} |
511 |
return res; |
return res; |
625 |
if (dialog.run() == Gtk::RESPONSE_OK) { |
if (dialog.run() == Gtk::RESPONSE_OK) { |
626 |
std::string filename = dialog.get_filename(); |
std::string filename = dialog.get_filename(); |
627 |
printf("filename=%s\n", filename.c_str()); |
printf("filename=%s\n", filename.c_str()); |
628 |
printf("on_action_file_open self=%x\n", Glib::Thread::self()); |
printf("on_action_file_open self=%x\n", Glib::Threads::Thread::self()); |
629 |
load_file(filename.c_str()); |
load_file(filename.c_str()); |
630 |
current_gig_dir = Glib::path_get_dirname(filename); |
current_gig_dir = Glib::path_get_dirname(filename); |
631 |
} |
} |
667 |
void MainWindow::on_loader_finished() |
void MainWindow::on_loader_finished() |
668 |
{ |
{ |
669 |
printf("Loader finished!\n"); |
printf("Loader finished!\n"); |
670 |
printf("on_loader_finished self=%x\n", Glib::Thread::self()); |
printf("on_loader_finished self=%x\n", Glib::Threads::Thread::self()); |
671 |
load_gig(loader->gig, loader->filename); |
load_gig(loader->gig, loader->filename); |
672 |
load_dialog->hide(); |
load_dialog->hide(); |
673 |
} |
} |
919 |
dialog.set_name("Gigedit"); |
dialog.set_name("Gigedit"); |
920 |
#endif |
#endif |
921 |
dialog.set_version(VERSION); |
dialog.set_version(VERSION); |
922 |
dialog.set_copyright("Copyright (C) 2006-2011 Andreas Persson"); |
dialog.set_copyright("Copyright (C) 2006-2012 Andreas Persson"); |
923 |
dialog.set_comments(_( |
dialog.set_comments(_( |
924 |
"Released under the GNU General Public License.\n" |
"Released under the GNU General Public License.\n" |
925 |
"\n" |
"\n" |