Mercurial > octave
view libgui/qterminal/libqterminal/win32/QWinTerminalImpl.h @ 19303:c6615ca0a11d gui-release
horizontal scrollbar for GUI terminal on Windows systems
* QTerminal.h (QTerminal::init_terminal_size):
New public virtual slot.
(QTerminal::QTerminal): Connect main_window::init_terminal_size_signal
to QTerminal::init_terminal_size slot.
* QWinTerminalImpl.h, QWinTerminalImpl.cc
(QConsolePrivate::updateConsoleSize): New parameter
allow_smaller_width. Call updateHorizontalScrollBar and
updateVerticalScrollBar instead of updateScrollBar.
(QConsolePrivate::updateVerticalScrollBar): Rename from
QConsolePrivate::updateScrollBar. Change all uses.
(QConsolePrivate::setVerticalScrollValue): Rename from
QConsolePrivate::setScrollValue. Change all uses.
(QConsolePrivate::m_verticalScrollBar): Rename from
QConsolePrivate::m_scrollBar. Change all uses.
(QConsolePrivate::m_horizontalScrollBar): New data member.
(QConsolePrivate::updateHorizontalScrollBar,
QConsolePrivate::setHorizontalScrollValue): New functions.
(QConsolePrivate::QConsolePrivate): Create horizontal scroll bar.
Call updateHorizontalScrollBar and updateVerticalScrollBar instead of
updateScrollBar. Connect signal for horizontal scrolling.
(QConsolePrivate::selectWord, QConsolePrivate::drawSelection): Handle
horizontal offset.
(QWinTerminalImpl::init_terminal_size): New slot.
(QWinTerminalImpl::verticalScrollValueChanged): Rename from
QWinTerminalImpl::scrollValueChanged.
(QWinTerminalImpl::horizontalScrollValueChanged): New slot.
* main-window.h, main-window.cc (main_window::init_terminal_size):
New slot.
(main_window::init_terminal_size_signal): New signal.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 30 Oct 2014 13:38:02 -0400 |
parents | 37159a873c96 |
children | bd1369a2a651 |
line wrap: on
line source
/* Copyright (C) 2011, 2013 Michael Goffioul. This file is part of QConsole. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ #ifndef __QConsole_h__ #define __QConsole_h__ 1 #include <QWidget> #include "QTerminal.h" class QFocusEvent; class QKeyEvent; class QPainter; class QPaintEvent; class QResizeEvent; class QWheelEvent; class QPoint; class QDragEnterEvent; class QDropEvent; class QConsolePrivate; class QConsoleThread; class QConsoleView; ////////////////////////////////////////////////////////////////////////////// class QWinTerminalImpl : public QTerminal { Q_OBJECT friend class QConsolePrivate; friend class QConsoleThread; friend class QConsoleView; public: QWinTerminalImpl (QWidget* parent = 0); QWinTerminalImpl (const QString& cmd, QWidget* parent = 0); ~QWinTerminalImpl (void); void setTerminalFont (const QFont& font); void setSize (int columns, int lines); void sendText (const QString& s); void setCursorType (CursorType type, bool blinking); void setBackgroundColor (const QColor& color); void setForegroundColor (const QColor& color); void setSelectionColor (const QColor& color); void setCursorColor (bool useForegoundColor, const QColor& color); void setScrollBufferSize(int value); QString selectedText (); public slots: void copyClipboard (void); void pasteClipboard (void); void selectAll (void); void blinkCursorEvent (void); void init_terminal_size (void); signals: void terminated (void); void titleChanged (const QString&); void set_global_shortcuts_signal (bool); void set_screen_size_signal (int, int); protected: void viewPaintEvent (QConsoleView*, QPaintEvent*); void setBlinkingCursor (bool blink); void setBlinkingCursorState (bool blink); void viewResizeEvent (QConsoleView*, QResizeEvent*); void wheelEvent (QWheelEvent*); void focusInEvent (QFocusEvent*); void focusOutEvent (QFocusEvent*); void keyPressEvent (QKeyEvent*); virtual void start (void); void mouseMoveEvent (QMouseEvent *event); void mousePressEvent (QMouseEvent *event); void mouseReleaseEvent (QMouseEvent *event); void mouseDoubleClickEvent (QMouseEvent* event); void mouseTripleClickEvent (QMouseEvent* event); bool eventFilter(QObject *obj, QEvent *ev); void dragEnterEvent(QDragEnterEvent *event); void dropEvent(QDropEvent *event); private slots: void horizontalScrollValueChanged (int value); void verticalScrollValueChanged (int value); void monitorConsole (void); void updateSelection (void); void tripleClickTimeout (void); private: QConsolePrivate* d; bool allowTripleClick; }; ////////////////////////////////////////////////////////////////////////////// #endif // __QConsole_h__