OSDN Git Service

Initial commit. Text view widget is implemented.
[fukui-no-namari/dialektos.git] / src / thread_window.cxx
1 /*
2  * Copyright (C) 2009 by Aiwota Programmer
3  * aiwotaprog@tetteke.tk
4  *
5  * This file is part of Dialektos.
6  *
7  * Dialektos is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * Dialektos is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with Dialektos.  If not, see <http://www.gnu.org/licenses/>.
19  */
20
21 #include "thread_window.hxx"
22
23 #include <glibmm/convert.h>
24 #include <boost/date_time/posix_time/posix_time.hpp>
25 #include <iostream>
26 #include "bbs_detail_base.hxx"
27
28
29 namespace dialektos {
30
31
32 void ThreadWindow::create(std::auto_ptr<bbs_detail::Base> bbs) {
33   regist(new ThreadWindow(bbs));
34 }
35
36 ThreadWindow::ThreadWindow(std::auto_ptr<bbs_detail::Base> bbs) :
37   SuperClass(),
38   text_view_(),
39   scrolled_(text_view_.get_adjustment()),
40   bbs_(bbs) {
41
42   set_default_size(400,300);
43
44   scrolled_.add(text_view_);
45   add(scrolled_);
46
47   show_all();
48
49   load();
50 }
51
52 bool ThreadWindow::load() {
53   using namespace boost::posix_time;
54   ptime start = microsec_clock::local_time();
55
56   if (bbs_) {
57
58     bbs_->load_thread(text_view_);
59     text_view_.relayout();
60     text_view_.queue_draw();
61
62     std::cout <<
63     to_simple_string(microsec_clock::local_time() - start) << std::endl;
64   }
65
66   return false;
67 }
68
69 bool ThreadWindow::is_same(const bbs_detail::Base& bbs) const {
70   const bbs_detail::Base& lhs = *bbs_;
71   return lhs == bbs;
72 }
73
74
75 } // namespace dialektos