FLTK 1.4小部件位置w.r.t. X11根窗口?

问题描述 投票:1回答:1

上下文

[我正在与其他人一起编码RefPerSys,这是C ++ 17上的CPL上的GPLv3 +项目,用于GNU / Linux / x86-64 / Debian / Sid。它的gitlabfltk-branch git branch显示服务器一起使用从源代码编译的FLTK 1.4

我有C ++类,例如[在Xorg中:]]

file headfltk_rps.hh

并且我正在调试将旧的C ++宏输出到headfltk_rps.hh(在class RpsGui_Window: public Fl_Double_Window { static std::set<RpsGui_Window*> _set_of_gui_windows_; public: virtual int handle(int); protected: Fl_Menu_Bar *guiwin_menubar; std::string guiwin_label; virtual void initialize_menubar(void) =0; RpsGui_Window(int w, int h, const std::string& lab); RpsGui_Window(int x, int y, int w, int h, const std::string& lab); public: virtual ~RpsGui_Window(); /// .... skipping irrelevant code const std::string label_str(void) const { return guiwin_label; }; }; /// end class RpsGui_Window class RpsGui_CommandWindow : public RpsGui_Window { static constexpr int right_menu_gap = 16; static constexpr int menu_height = 20; Fl_Pack* cmdwin_pack; friend void rps_fltk_initialize(int &,char**); virtual void initialize_menubar(void); virtual void initialize_pack(void); static void menu_dump_cb(Fl_Widget*, void*); static void menu_exit_cb(Fl_Widget*, void*); public: RpsGui_CommandWindow(int w, int h, const std::string& lab); RpsGui_CommandWindow(int x, int y, int w, int h, const std::string& lab); virtual ~RpsGui_CommandWindow(); }; // end class RpsGui_CommandWindow 及以下版本中定义),例如std::cerr

refpersys.hh lines 315

屏幕上仍然有错误。有关更多详细信息,请参见refpersys.hh(带有屏幕截图)。

我想输出给定的FLTK小部件的位置。我的X11根窗口。 FWIW as below正在提供(跳过了很多输出)

 RPS_DEBUG_LOG(GUI, "RpsGui_CommandWindow::initialize_pack this:" 
               <<  RpsGui_ShowWidget(this) 
               << std::endl << "... cmdwin_pack:" 
               << RpsGui_ShowWidget(cmdwin_pack));

问题

换句话说,我想编码(出于调试目的)

RefPerSys issue#33

作为成员函数返回xdpyinfo w.r.t.的左上角水平坐标。 X11根窗口

,但我不确定如何编写代码。

[在FLTK的函数name of display: :0 version number: 11.0 vendor string: The X.Org Foundation vendor release number: 12008000 X.Org version: 1.20.8 screen #0: dimensions: 5360x1440 pixels (1418x381 millimeters) resolution: 96x96 dots per inch 中对int RpsGui_Window::x_wrt_root() const; 的调用(this,第2159行附近)可能与我的问题有关,因此XGetWindowAttributesfl_handle也是如此

上下文我正在与其他人RefPerSys一起编码,这是gitlab上C ++ 17中GPLv3 +项目,用于GNU / Linux / x86-64 / Debian / Sid。它的fltk-branch git分支使用的是FLTK 1.4,它是从源代码编译的,带有Xorg ...

c++ linux debian x11 fltk
1个回答
0
投票

[从Fl_Widget继承的函数:file src/Fl_x.cxxsrc/Fl_x.cxx;您可以打电话给他们以了解父窗口的位置:

© www.soinside.com 2019 - 2024. All rights reserved.