46#ifndef INCLUDE_GUARD_URANIA_WINDOW_H
47#define INCLUDE_GUARD_URANIA_WINDOW_H
92 std::map<int, CmdHandler> cmap_;
125 virtual bool onSize(
Window* win,
int typ,
int w,
int h) {
return false; }
155 Window* win,
int x,
int y,
bool ctrl,
bool shft,
bool lb,
bool mb,
bool rb)
173 Window* win,
int x,
int y,
bool ctrl,
bool shft,
bool lb,
bool mb,
bool rb)
191 Window* win,
int x,
int y,
bool ctrl,
bool shft,
bool lb,
bool mb,
bool rb)
238 Window* w, std::vector<std::wstring>& fa,
int x,
int y)
268 std::shared_ptr<urania::Menu>
menu_;
273 void init_(HWND hw)
override;
281 void setMenu(std::shared_ptr<urania::Menu>&& m)
286 virtual LRESULT
wproc_(UINT msg, WPARAM wp, LPARAM lp)
override;
288 static HMENU
getHM_(
const std::shared_ptr<urania::Menu>& mn)
289 {
return mn->hmenu_; }
291 HMENU
linkMenu_(
const std::shared_ptr<urania::Menu>& mn)
294 return menu_->giveHM_();
299 menu_ = std::move(mn);
300 return menu_->giveHM_();
343 :
x(CW_USEDEFAULT),
w(CW_USEDEFAULT),
357 std::unique_ptr<urania::Window>
358 create(std::unique_ptr<urania::WMHandler>&& hnd,
int menu =0)
360 return factory_(std::move(hnd), menu,
nullptr, 0);
371 std::unique_ptr<urania::Window>
374 std::unique_ptr<urania::WMHandler>&& hnd,
377 return factory_(std::move(hnd), menu, owner, 0);
388 std::unique_ptr<urania::Window>
392 return factory_(std::move(hnd), 0, parent, cid);
400 std::unique_ptr<urania::Window>
402 std::unique_ptr<WMHandler>&& hnd,
int menu,
Window管理・操作用基底クラス
Definition bwin.h:54
Definition paintdev.h:212
メッセージハンドラ基底
Definition window.h:81
virtual ~WMHandler()=default
解體子
virtual bool onMButtonDown(Window *win, int x, int y, bool ctrl, bool shft, bool lb, bool mb, bool rb)
マウス中ボタン押下時のハンドラ
Definition window.h:172
LRESULT operator()(urania::WndMessage *msg)
メッセージに應じたハンドラを呼び出す
Definition win.cpp:153
virtual bool onSize(Window *win, int typ, int w, int h)
ウィンドウサイズ變化時のハンドラ
Definition window.h:125
virtual void onPaint(BasicWindow *win, PaintDevice *pd)
再描畫要求時のハンドラ
Definition window.h:202
virtual void onScroll(Window *win, int id, int pos)
スクロールバー操作時のハンドラ
Definition window.h:214
virtual bool onKeyDown(Window *win, int code, int rep, bool prev)
キー押下時のハンドラ
Definition window.h:137
virtual bool onLButtonDown(Window *win, int x, int y, bool ctrl, bool shft, bool lb, bool mb, bool rb)
マウス左ボタン押下時のハンドラ
Definition window.h:154
void setCommand(int cmdid, CmdHandler c)
コマンドに對するハンドラを登録する
Definition window.h:101
virtual void onMouseWheel(Window *w, int delta, int keys, int x, int y)
マウスホイール操作時のハンドラ
Definition window.h:227
virtual bool onRButtonDown(Window *win, int x, int y, bool ctrl, bool shft, bool lb, bool mb, bool rb)
マウス右ボタン押下時のハンドラ
Definition window.h:190
virtual void onDropFiles(Window *w, std::vector< std::wstring > &fa, int x, int y)
ファイルドロップ時のハンドラ
Definition window.h:237
void(*)(Window *) CmdHandler
コマンドハンドラ
Definition window.h:89
virtual bool onDestroy()
ウィンドウ破棄時のハンドラ
Definition window.h:113
ウィンドウのファクトリ
Definition window.h:320
unsigned bkcolor
背景色の番號
Definition window.h:330
bool border_only
枠のみのウィンドウを作成する場合はtrue
Definition window.h:338
bool resizeable
ウィンドウの大きさを變更可能にする場合はtrue
Definition window.h:339
int w
ウィンドウの幅
Definition window.h:325
int x
ウィンドウの左上のx座標
Definition window.h:323
std::wstring title
ウィンドウのタイトル
Definition window.h:322
bool popup
ポップアップウィンドウを作成する場合はtrue
Definition window.h:337
int y
ウィンドウの左上のy座標
Definition window.h:324
bool drag_and_drop
ドラッグ・アンド・ドロップを受け附けるときはtrue
Definition window.h:332
std::unique_ptr< urania::Window > createAsOwned(urania::BasicWindow *owner, std::unique_ptr< urania::WMHandler > &&hnd, int menu=0)
オーナー附ウィンドウの生成
Definition window.h:372
int h
ウィンドウの高さ
Definition window.h:326
unsigned icon
アイコンのリソースID
Definition window.h:328
WindowFactory() noexcept
Definition window.h:342
bool v_scrollbar
垂直スクロールバーを持たせる場合はtrue
Definition window.h:336
std::unique_ptr< urania::Window > createAsChild(urania::BasicWindow *parent, int cid, std::unique_ptr< WMHandler > &&hnd)
子ウィンドウの生成
Definition window.h:389
std::unique_ptr< urania::Window > create(std::unique_ptr< urania::WMHandler > &&hnd, int menu=0)
ウィンドウ生成
Definition window.h:358
unsigned cursor
カーソルのリソースID
Definition window.h:329
bool maxbox
最大化ボタンを持たせる場合はtrue
Definition window.h:333
bool minbox
最小化ボタンを持たせる場合はtrue
Definition window.h:334
bool h_scrollbar
水平スクロールバーを持たせる場合はtrue
Definition window.h:335
ウィンドウ
Definition window.h:260
std::shared_ptr< urania::Menu > getMenu() const
Definition window.h:279
bool dad_
trueならDrag&Dropを受け附ける
Definition window.h:269
~Window()
Definition window.h:277
void setMenu(const std::shared_ptr< urania::Menu > &m)
Definition window.h:280
HMENU linkMenu_(std::shared_ptr< urania::Menu > &&mn)
Definition window.h:297
LRESULT(* H_)(urania::Window *pw, UINT msg, WPARAM wp, LPARAM lp)
Definition window.h:264
void setMenu(std::shared_ptr< urania::Menu > &&m)
Definition window.h:281
virtual LRESULT wproc_(UINT msg, WPARAM wp, LPARAM lp) override
各Windowのメッセージ処理プロシージャ
Definition win.cpp:96
void uninit_() override
メッセージ處理系初期化解除
Definition win.cpp:136
std::shared_ptr< urania::Menu > menu_
関連づけられたメニュー
Definition window.h:268
Window() noexcept
Definition window.h:272
static HMENU getHM_(const std::shared_ptr< urania::Menu > &mn)
Definition window.h:288
std::unique_ptr< urania::WMHandler > msgHandler_
メッセージハンドラ
Definition window.h:267
void init_(HWND hw) override
メッセージ處理系初期化
Definition win.cpp:117
HMENU linkMenu_(const std::shared_ptr< urania::Menu > &mn)
Definition window.h:291
void deleting_()
オブジェクト側からHWNDを破棄
Definition wbase.h:137
@ BG_WHITE
Definition decl.h:107
@ DEFAULT_RC
Definition decl.h:102
WPARAM wparam
Definition window.h:72
UINT id
Definition window.h:71
LPARAM lparam
Definition window.h:73
urania::Window * window
Definition window.h:70