[我正在与其他人一起编码RefPerSys,这是C ++ 17上的CPL上的GPLv3 +项目,用于GNU / Linux / x86-64 / Debian / Sid。它的gitlab与fltk-branch git branch显示服务器一起使用从源代码编译的FLTK 1.4。
我有C ++类,例如[在Xorg中:]]
fileheadfltk_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行附近)可能与我的问题有关,因此XGetWindowAttributes
的fl_handle
也是如此
上下文我正在与其他人RefPerSys一起编码,这是gitlab上C ++ 17中GPLv3 +项目,用于GNU / Linux / x86-64 / Debian / Sid。它的fltk-branch git分支使用的是FLTK 1.4,它是从源代码编译的,带有Xorg ...
[从Fl_Widget继承的函数:file src/Fl_x.cxx
和src/Fl_x.cxx
;您可以打电话给他们以了解父窗口的位置: