summaryrefslogtreecommitdiffstats
path: root/src/jabber_whiteboard/session-file-selector.cpp
blob: 85a3a3ec11212aa2ad231198e3a3b723b9c876af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/**
 * Session file selector widget
 *
 * Authors:
 * David Yip <yipdw@rose-hulman.edu>
 *
 * Copyright (c) 2005 Authors
 *
 * Released under GNU GPL, read the file 'COPYING' for more information
 */

#include "session-file-selector.h"

#include <glibmm/i18n.h>
#include <gtkmm/filechooserdialog.h>
#include <gtkmm/stock.h>

namespace Inkscape {

namespace Whiteboard {

SessionFileSelectorBox::SessionFileSelectorBox() :
	_usesessionfile(_("_Write session file:"), true)
{
	this->_construct();
}

SessionFileSelectorBox::~SessionFileSelectorBox()
{

}

bool
SessionFileSelectorBox::isSelected()
{
	return this->_usesessionfile.get_active();
}

Glib::ustring const&
SessionFileSelectorBox::getFilename()
{
	return this->_filename;
}

void
SessionFileSelectorBox::_construct()
{
	this->_getfilepath.set_label("...");

	this->pack_start(this->_usesessionfile);
	this->pack_start(this->_sessionfile);
	this->pack_end(this->_getfilepath);

	this->_getfilepath.signal_clicked().connect(sigc::mem_fun(*this, &SessionFileSelectorBox::_callback));
}

void
SessionFileSelectorBox::_callback() {
	Gtk::FileChooserDialog sessionfiledlg(_("Select a location and filename"), Gtk::FILE_CHOOSER_ACTION_SAVE);
	sessionfiledlg.add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
	sessionfiledlg.add_button(_("Set filename"), Gtk::RESPONSE_OK);
	int result = sessionfiledlg.run();
	switch (result) {
		case Gtk::RESPONSE_OK:
		{
			this->_usesessionfile.set_active();
			this->_sessionfile.set_text(sessionfiledlg.get_filename());
			this->_filename = sessionfiledlg.get_filename();
			break;
		}
		case Gtk::RESPONSE_CANCEL:
		default:
			break;
	}
}

}

}


/*
  Local Variables:
  mode:c++
  c-file-style:"stroustrup"
  c-file-offsets:((innamespace . 0)(inline-open . 0))
  indent-tabs-mode:nil
  fill-column:99
  End:
*/