Mercurial > octave
view libgui/graphics/module.mk @ 27303:07b330708e3c
use Qt signals for interpreter callbacks in Qt graphics toolkit
* Backend.h, Backend.cc (Backend::m_interpreter): New data member.
(Backend::createObject): Pass pointer to invoking Backend object in
signal argument list.
(Backend::interpreter_event): New slots. Access interpreter
event_manager to post interpreter callbacks events here.
* ObjectFactory.h, ObjectFactory.cc (ObjectFactory::createObject): New
arg, backend. Connect interpreter_event signal from newly created
object to interpreter_event slot in backend object.
* __init_qt__.cc (__init__): Pass interpreter to Backend constructor.
* module.mk (OCTAVE_GUI_GRAPHICS_MOC): New files, moc-Canvas.cc and
moc-Container.cc.
* Object.h (Object::interpreter_event): New signals.
* Canvas.h, Canvas.cc (Canvas::interprter_event): New signals.
(Canvas::canvasMouseReleaseEvent): Emit interpreter_event signal
instead of accessing interpreter event_manager object directly here.
* GLCanvas.cc (GLCanvas::do_print): Emit interpreter_event signal
instead of accessing interpreter event_manager object directly here.
* Container.h, Container.cc (Container::interpreter_event):
New signals.
(Container::canvas): Forward Canvas interpreter_event signals to
Container interpreter_event signals.
* ButtonGroup.cc (ButtonGroup::ButtonGroup) Forward Container
interpreter_event signals to the ButtonGroup interpreter_event
signal. Since ButtonGroup is derived from Object, this connection and
the one made by ObjectFactory::createObject has the effect of passing
the interpreter_event signal up to the Backend interpreter_event slot.
* Figure.cc (Figure::Figure): Likewise, for Figure.
* Panel.cc (Panel::Panel): Likewise, for Panel.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Mon, 29 Jul 2019 10:43:20 -0400 |
parents | e201cf0c7360 |
children | 718116e9c7d3 |
line wrap: on
line source
if AMCOND_BUILD_QT_GRAPHICS LIBOCTGUI_GRAPHICS_LIB = %reldir%/__init_qt__.la OCTAVE_GUI_GRAPHICS_MOC = \ %reldir%/moc-annotation-dialog.cc \ %reldir%/moc-Backend.cc \ %reldir%/moc-ButtonControl.cc \ %reldir%/moc-ButtonGroup.cc \ %reldir%/moc-Canvas.cc \ %reldir%/moc-Container.cc \ %reldir%/moc-ContextMenu.cc \ %reldir%/moc-EditControl.cc \ %reldir%/moc-Figure.cc \ %reldir%/moc-FigureWindow.cc \ %reldir%/moc-ListBoxControl.cc \ %reldir%/moc-Menu.cc \ %reldir%/moc-Object.cc \ %reldir%/moc-ObjectFactory.cc \ %reldir%/moc-ObjectProxy.cc \ %reldir%/moc-PopupMenuControl.cc \ %reldir%/moc-PushTool.cc \ %reldir%/moc-SliderControl.cc \ %reldir%/moc-TextEdit.cc \ %reldir%/moc-Table.cc \ %reldir%/moc-ToggleTool.cc \ %reldir%/moc-ToolBar.cc $(OCTAVE_GUI_GRAPHICS_MOC): | %reldir%/$(octave_dirstamp) DIRSTAMP_FILES += \ %reldir%/$(octave_dirstamp) __init_qt___MOC = \ $(OCTAVE_GUI_GRAPHICS_MOC) __init_qt___UI = \ %reldir%/annotation-dialog.ui __init_qt___UI_H = $(patsubst %reldir%/%.ui, %reldir%/ui-%.h, $(__init_qt___UI)) $(__init_qt___UI_H): | %reldir%/$(octave_dirstamp) BUILT_SOURCES += $(__init_qt___UI_H) noinst_HEADERS += \ %reldir%/__init_qt__.h \ %reldir%/annotation-dialog.h \ %reldir%/Backend.h \ %reldir%/BaseControl.h \ %reldir%/ButtonControl.h \ %reldir%/ButtonGroup.h \ %reldir%/Canvas.h \ %reldir%/CheckBoxControl.h \ %reldir%/Container.h \ %reldir%/ContextMenu.h \ %reldir%/EditControl.h \ %reldir%/Figure.h \ %reldir%/FigureWindow.h \ %reldir%/GenericEventNotify.h \ %reldir%/GLCanvas.h \ %reldir%/KeyMap.h \ %reldir%/ListBoxControl.h \ %reldir%/Logger.h \ %reldir%/Menu.h \ %reldir%/MenuContainer.h \ %reldir%/Object.h \ %reldir%/ObjectFactory.h \ %reldir%/ObjectProxy.h \ %reldir%/Panel.h \ %reldir%/PopupMenuControl.h \ %reldir%/PushButtonControl.h \ %reldir%/PushTool.h \ %reldir%/QtHandlesUtils.h \ %reldir%/RadioButtonControl.h \ %reldir%/SliderControl.h \ %reldir%/Table.h \ %reldir%/TextControl.h \ %reldir%/TextEdit.h \ %reldir%/ToggleButtonControl.h \ %reldir%/ToggleTool.h \ %reldir%/ToolBar.h \ %reldir%/ToolBarButton.h \ %reldir%/gl-select.h \ %reldir%/qopengl-functions.h \ $(TEMPLATE_SRC) %canon_reldir%___init_qt___la_SOURCES = \ %reldir%/__init_qt__.cc \ %reldir%/annotation-dialog.cc \ %reldir%/Backend.cc \ %reldir%/BaseControl.cc \ %reldir%/ButtonControl.cc \ %reldir%/ButtonGroup.cc \ %reldir%/Canvas.cc \ %reldir%/CheckBoxControl.cc \ %reldir%/Container.cc \ %reldir%/ContextMenu.cc \ %reldir%/EditControl.cc \ %reldir%/Figure.cc \ %reldir%/FigureWindow.cc \ %reldir%/GLCanvas.cc \ %reldir%/KeyMap.cc \ %reldir%/ListBoxControl.cc \ %reldir%/Logger.cc \ %reldir%/Menu.cc \ %reldir%/Object.cc \ %reldir%/ObjectFactory.cc \ %reldir%/ObjectProxy.cc \ %reldir%/Panel.cc \ %reldir%/PopupMenuControl.cc \ %reldir%/PushButtonControl.cc \ %reldir%/PushTool.cc \ %reldir%/QtHandlesUtils.cc \ %reldir%/RadioButtonControl.cc \ %reldir%/SliderControl.cc \ %reldir%/Table.cc \ %reldir%/TextControl.cc \ %reldir%/TextEdit.cc \ %reldir%/ToggleButtonControl.cc \ %reldir%/ToggleTool.cc \ %reldir%/ToolBar.cc \ %reldir%/gl-select.cc TEMPLATE_SRC = \ %reldir%/ToolBarButton.cc nodist_%canon_reldir%___init_qt___la_SOURCES = $(__init_qt___MOC) %canon_reldir%___init_qt___la_CPPFLAGS = \ $(AM_CPPFLAGS) \ $(FT2_CPPFLAGS) \ $(FONTCONFIG_CPPFLAGS) \ $(HDF5_CPPFLAGS) \ @OCTGUI_DLL_DEFS@ \ @QT_OPENGL_CPPFLAGS@ \ -Ilibgui/graphics -I$(srcdir)/libgui/graphics \ -Isrc -I$(srcdir)/libgui/src \ -Iliboctave \ -I$(srcdir)/liboctave/array \ -Iliboctave/numeric -I$(srcdir)/liboctave/numeric \ -Iliboctave/operators -I$(srcdir)/liboctave/operators \ -I$(srcdir)/liboctave/system \ -I$(srcdir)/liboctave/util \ -Ilibinterp -I$(srcdir)/libinterp \ -Ilibinterp/parse-tree -I$(srcdir)/libinterp/parse-tree \ -Ilibinterp/corefcn -I$(srcdir)/libinterp/corefcn \ -I$(srcdir)/libinterp/octave-value %canon_reldir%___init_qt___la_LDFLAGS = \ -avoid-version -module $(NO_UNDEFINED_LDFLAG) \ $(QT_OPENGL_LDFLAGS) \ $(WARN_LDFLAGS) DLD_LIBOCTGUI_LIBADD = $(OCT_GUI_LINK_DEPS) %canon_reldir%___init_qt___la_LIBADD = \ $(DLD_LIBOCTGUI_LIBADD) \ $(QT_OPENGL_LIBS) \ $(OPENGL_LIBS) %canon_reldir%___init_qt___la_DEPENDENCIES = $(OCT_GUI_LINK_DEPS) octlib_LTLIBRARIES += $(LIBOCTGUI_GRAPHICS_LIB) GRAPHICS_DEFUN_FILES = %reldir%/__init_qt__.cc GRAPHICS_OCT_FILES = $(LIBOCTGUI_GRAPHICS_LIB:.la=.oct) OCTAVE_INTERPRETER_TARGETS += $(GRAPHICS_OCT_FILES) OCT_FILE_LIBS += $(LIBOCTGUI_GRAPHICS_LIB) OCT_FILES += $(GRAPHICS_OCT_FILES) ## Use stamp files to avoid problems with checking timestamps ## of symbolic links %reldir%/__init_qt__.oct : $(LIBOCTGUI_GRAPHICS_LIB) $(AM_V_GEN)$(INSTALL_PROGRAM) %reldir%/.libs/$(shell $(SED) -n -e "s/dlname='\([^']*\)'/\1/p" < $<) $@ GRAPHICS_PKG_ADD_FILE = %reldir%/PKG_ADD %reldir%/PKG_ADD: $(GRAPHICS_DEFUN_FILES) $(srcdir)/build-aux/mk-pkg-add.sh | %reldir%/$(octave_dirstamp) $(AM_V_GEN)rm -f $@-t && \ $(SHELL) $(srcdir)/build-aux/mk-pkg-add.sh "$(srcdir)" $(GRAPHICS_DEFUN_FILES) > $@-t && \ mv $@-t $@ OCT_FILE_PKG_ADD_FILES += \ $(GRAPHICS_PKG_ADD_FILE) libgui_EXTRA_DIST += \ $(__init_qt___UI) libgui_CLEANFILES += \ $(GRAPHICS_OCT_FILES) \ $(GRAPHICS_PKG_ADD_FILE) \ $(__init_qt___MOC) \ $(__init_qt___UI_H) endif