3 Minimum Profit - Programmer Text Editor
7 Copyright (C) 2009 Angel Ortega <angel@triptico.com>
9 This program is free software; you can redistribute it and/or
10 modify it under the terms of the GNU General Public License
11 as published by the Free Software Foundation; either version 2
12 of the License, or (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License
20 along with this program; if not, write to the Free Software
21 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23 http://www.triptico.com
27 /* override auto-generated definition in config.h */
28 extern "C" int qt4_drv_detect(int * argc
, char *** argv
);
44 class MPWindow
: public QMainWindow
47 MPWindow(QWidget
*parent
= 0);
49 bool event(QEvent
*event
);
52 class MPArea
: public QWidget
57 MPArea(QWidget
*parent
= 0);
58 void inputMethodEvent(QInputMethodEvent
*event
);
59 void keyPressEvent(QKeyEvent
*event
);
60 void keyReleaseEvent(QKeyEvent
*event
);
61 void mousePressEvent(QMouseEvent
*event
);
62 void mouseReleaseEvent(QMouseEvent
*event
);
63 void mouseMoveEvent(QMouseEvent
*event
);
64 void wheelEvent(QWheelEvent
*event
);
65 void dragEnterEvent(QDragEnterEvent
*event
);
66 void dropEvent(QDropEvent
*event
);
67 bool event(QEvent
*event
);
70 void paintEvent(QPaintEvent
*event
);
73 void from_scrollbar(int);
74 void from_filetabs(int);
75 void from_menu(QAction
*);
82 QStatusBar
*statusbar
;
85 #include "mpv_qk_common.cpp"
87 static void build_menu(void)
93 static void draw_status(void)
95 statusbar
->showMessage(str_to_qstring(mp_build_status_line()));
99 /** MPWindow methods **/
101 MPWindow::MPWindow(QWidget
*parent
) : QMainWindow(parent
)
103 menubar
= this->menuBar();
106 statusbar
= this->statusBar();
108 /* the full container */
109 QVBoxLayout
*vb
= new QVBoxLayout(this);
111 file_tabs
= new QTabBar();
112 file_tabs
->setFocusPolicy(Qt::NoFocus
);
114 QHBoxLayout
*hb
= new QHBoxLayout();
118 scrollbar
= new QScrollBar();
119 scrollbar
->setFocusPolicy(Qt::NoFocus
);
122 hb
->addWidget(scrollbar
);
123 QWidget
*cc
= new QWidget();
126 vb
->addWidget(file_tabs
);
128 QWidget
*mc
= new QWidget();
131 setCentralWidget(mc
);
133 connect(scrollbar
, SIGNAL(valueChanged(int)),
134 area
, SLOT(from_scrollbar(int)));
136 connect(file_tabs
, SIGNAL(currentChanged(int)),
137 area
, SLOT(from_filetabs(int)));
139 connect(menubar
, SIGNAL(triggered(QAction
*)),
140 area
, SLOT(from_menu(QAction
*)));
142 this->setWindowIcon(QIcon(QPixmap(mp_xpm
)));
144 // this->setAutoSaveSettings(QLatin1String("MinimumProfit"), true);
148 bool MPWindow::queryExit(void)
150 mp_process_event(MPDM_LS(L
"close-window"));
152 // this->saveAutoSaveSettings();
154 return mp_exit_requested
? true : false;
158 bool MPWindow::event(QEvent
*event
)
160 /* do the processing */
161 bool r
= QWidget::event(event
);
163 if (mp_exit_requested
) {
164 // this->saveAutoSaveSettings();
172 /** driver functions **/
174 static mpdm_t
qt4_drv_alert(mpdm_t a
)
180 static mpdm_t
qt4_drv_confirm(mpdm_t a
)
186 static mpdm_t
qt4_drv_openfile(mpdm_t a
)
192 static mpdm_t
qt4_drv_savefile(mpdm_t a
)
198 static mpdm_t
qt4_drv_form(mpdm_t a
)
204 static void register_functions(void)
208 drv
= mpdm_hget_s(mp
, L
"drv");
209 mpdm_hset_s(drv
, L
"main_loop", MPDM_X(qt4_drv_main_loop
));
210 mpdm_hset_s(drv
, L
"shutdown", MPDM_X(qt4_drv_shutdown
));
212 mpdm_hset_s(drv
, L
"clip_to_sys", MPDM_X(qt4_drv_clip_to_sys
));
213 mpdm_hset_s(drv
, L
"sys_to_clip", MPDM_X(qt4_drv_sys_to_clip
));
214 mpdm_hset_s(drv
, L
"update_ui", MPDM_X(qt4_drv_update_ui
));
215 /* mpdm_hset_s(drv, L"timer", MPDM_X(qt4_drv_timer));*/
216 mpdm_hset_s(drv
, L
"busy", MPDM_X(qt4_drv_busy
));
218 mpdm_hset_s(drv
, L
"alert", MPDM_X(qt4_drv_alert
));
219 mpdm_hset_s(drv
, L
"confirm", MPDM_X(qt4_drv_confirm
));
220 mpdm_hset_s(drv
, L
"openfile", MPDM_X(qt4_drv_openfile
));
221 mpdm_hset_s(drv
, L
"savefile", MPDM_X(qt4_drv_savefile
));
222 mpdm_hset_s(drv
, L
"form", MPDM_X(qt4_drv_form
));
226 static mpdm_t
qt4_drv_startup(mpdm_t a
)
227 /* driver initialization */
229 register_functions();
234 window
= new MPWindow();
240 extern "C" Display
*XOpenDisplay(char *);
242 extern "C" int qt4_drv_detect(int * argc
, char *** argv
)
245 Display
*x11_display
;
247 /* try connecting directly to the Xserver */
248 if ((x11_display
= XOpenDisplay((char *)NULL
)) == NULL
)
251 /* this is where it crashes if no X server */
252 app
= new QApplication(x11_display
);
254 drv
= mpdm_hget_s(mp
, L
"drv");
255 mpdm_hset_s(drv
, L
"id", MPDM_LS(L
"qt4"));
256 mpdm_hset_s(drv
, L
"startup", MPDM_X(qt4_drv_startup
));
261 #include "mpv_qt4.moc"