void ZoneClassInfoToolTipWindow::handleCursorMovement(int x, int y, OovStringRef str) { if(!mTopWindow) { mTopWindow = gtk_window_new(GTK_WINDOW_POPUP); mLabel = GTK_LABEL(gtk_label_new(nullptr)); // This doesn't fix the left justify // gtk_label_set_justify(mLabel, GTK_JUSTIFY_LEFT); gtk_container_add(GTK_CONTAINER(mTopWindow), GTK_WIDGET(mLabel)); } Gui::setText(mLabel, str); Gui::setVisible(mTopWindow, true); // If the focus isn't grabbed, the drawing area won't get the // focus-out event. gtk_widget_grab_focus(getDiagramWidget()); // Position tooltip window relative to the drawing area window. // If it clips on the right, then move it left. GdkWindow *drawWin = gtk_widget_get_window(getDiagramWidget()); GdkWindow *tipWin = gtk_widget_get_window(GTK_WIDGET(mTopWindow)); int winX; int winY; gdk_window_get_origin(drawWin, &winX, &winY); int padHeight = 10; x += winX; y += winY + padHeight; int screenWidth = gdk_screen_get_width(gtk_widget_get_screen(mTopWindow)); int winWidth = gdk_window_get_width(tipWin); if(x+winWidth > screenWidth) x = screenWidth - winWidth; gdk_window_move(tipWin, x, y); }
bool ZoneDiagramView::drawSvgDiagram(File &file) { GtkCairoContext cairo(getDiagramWidget()); SvgDrawer svgDrawer(file, cairo.getCairo()); mZoneDiagram.drawDiagram(svgDrawer); return svgDrawer.writeFile(); }
void ClassDiagramView::updateDrawingAreaSize() { GraphSize size = mClassDiagram.getGraphSize().getZoomed( mClassDiagram.getDesiredZoom()); GtkWidget *widget = getDiagramWidget(); gtk_widget_set_size_request(widget, size.x, size.y); }
void ZoneDiagramView::drawToDrawingArea() { GtkCairoContext cairo(getDiagramWidget()); CairoDrawer cairoDrawer(cairo.getCairo()); cairoDrawer.clearAndSetDefaults(); mZoneDiagram.drawDiagram(cairoDrawer); updateDrawingAreaSize(); }
void ZoneDiagramView::updateDrawingAreaSize() { GraphSize size = mZoneDiagram.getDrawingSize(); gtk_widget_set_size_request(getDiagramWidget(), size.x, size.y); }
void OperationDiagramView::updateDrawingAreaSize() { /// @todo - this is not efficient at the moment. GraphSize size = mOperationDiagram.getDrawingSize(mNullDrawer); gtk_widget_set_size_request(getDiagramWidget(), size.x, size.y); }
void IncludeDiagramView::updateDrawingAreaSize() { GraphSize size = mIncludeDiagram.getDrawingSize(mNullDrawer); gtk_widget_set_size_request(getDiagramWidget(), size.x, size.y); }