109 if (
AltDown) wKeyState|=MK_ALT;
150 #ifdef USE_WIN32_WINDOWS
157 if (!pVP) { ClipCursor(
nullptr);
return; }
163 if (GetWindowRect(
FullScreen.hWindow, &rtWindow))
165 vpRct.left += rtWindow.left; vpRct.top += rtWindow.top;
166 vpRct.right += rtWindow.left; vpRct.bottom+= rtWindow.top;
202 #ifdef USE_WIN32_WINDOWS
214 iMidX += rtWindow.left; iMidY += rtWindow.top;
216 SetCursorPos(iMidX, iMidY);
300 bool menuProcessed =
false;
333 int32_t iOffsetX,iOffsetY;
334 float wdt =
GfxR->fctMouseCursor.Wdt, hgt =
GfxR->fctMouseCursor.Hgt;
393 ImageWdt = pGfx->Mesh->GetBoundingBox().y2 - pGfx->Mesh->GetBoundingBox().y1;
394 ImageHgt = pGfx->Mesh->GetBoundingBox().z2 - pGfx->Mesh->GetBoundingBox().z1;
398 ImageWdt = ImageHgt = 1.0f;
402 bool fIsGameZoom =
true;
406 float XDraw, YDraw, ZoomDraw;
415 ZoomDraw = std::min(64.0f / ImageWdt, 64.0f / ImageHgt);
419 iOffsetX=int(ZoomDraw*ImageWdt/2);
420 iOffsetY=int(ZoomDraw*ImageHgt/2);
423 ccgo.
Set(cgo.
Surface, XDraw + cgo.
X - iOffsetX, YDraw + cgo.
Y - iOffsetY,
float(ImageWdt)*ZoomDraw,
float(ImageHgt)*ZoomDraw);
469 cgoTip =
static_cast<const C4Facet &
>(cgo);
649 bool fAllowDrag =
true;
763 this->DragObject =
nullptr;
768 DropObject =
nullptr;
843 if (!pObj)
return nullptr;
875 *x_out_gui =
GuiX; *y_out_gui =
GuiY;
const int32_t C4D_Foreground
const int32_t C4D_IgnoreFoW
const int32_t C4D_MouseSelect
C4Application Application
const int32_t C4MC_Drag_Unhandled
const int32_t C4MC_Drag_None
const int32_t C4MC_Tooltip_Delay
const int32_t C4MC_Drag_Script
const int32_t C4MC_Cursor_Passive
const int32_t C4MC_Cursor_Left
const int32_t C4MC_Cursor_Up
const int32_t C4MC_Button_None
const int32_t C4MC_DragSensitivity
const int32_t C4MC_Button_RightDown
const int32_t C4MC_Cursor_DownRight
const int32_t C4MC_Button_RightUp
const int32_t C4MC_Cursor_Crosshair
const int32_t C4MC_MD_DragSource
const int32_t C4MC_Cursor_DownLeft
const int32_t C4MC_Cursor_Down
const int32_t C4MC_Cursor_DragDrop
const int32_t C4MC_Button_LeftUp
const int32_t C4MC_Cursor_Select
const int32_t C4MC_Cursor_UpRight
const int32_t C4MC_Button_LeftDown
const int32_t C4MC_Button_LeftDouble
const int32_t C4MC_MD_NoClick
const int32_t C4MC_Cursor_Right
const int32_t C4MC_MD_DropTarget
const int32_t C4MC_Cursor_UpLeft
const int32_t C4MC_Button_Wheel
bool Inside(T ival, U lbound, V rbound)
C4ConfigGraphics Graphics
void Add(C4PacketType eType, C4ControlPacket *pCtrl)
static C4ControlPlayerMouse * Hover(const C4Player *player, const C4Object *target, const C4Object *old_target, const C4Object *drag=nullptr)
static C4ControlPlayerMouse * DragDrop(const C4Player *player, const C4Object *target, const C4Object *drag)
void Draw(C4Facet &cgo, bool fSelected=false, DWORD iColor=0, C4Object *pObj=nullptr, int32_t iPhaseX=0, int32_t iPhaseY=0, C4DrawTransform *trans=nullptr, const char *graphicsName=nullptr)
void GetZoom(ZoomData *r)
void SetBlitMode(DWORD dwBlitMode)
void DeactivateBlitModulation()
void SetZoom(float X, float Y, float Zoom)
void ActivateBlitModulation(DWORD dwWithClr)
void Set(C4Surface &rSfc)
void SetPreferredDlgRect(const C4Rect &rtNewPref)
static void DrawToolTip(const char *szTip, C4TargetFacet &cgo, float guix, float guiy)
std::unique_ptr< C4ScriptGuiWindow > ScriptGuiRoot
C4Object * FindVisObject(float x, float y, int32_t player_nr, const C4Facet &viewport_game, const C4Facet &viewport_gui, float game_x, float game_y, DWORD category, float gui_x, float gui_y)
int32_t GetHeight() const
void SetTooltipText(const StdStrBuf &text)
void Draw(C4TargetFacet &cgo, const ZoomData &GameZoom)
bool IsViewport(C4Viewport *pViewport)
StdCopyStrBuf TooltipText
bool GetLastCursorPos(int32_t *x_out_gui, int32_t *y_out_gui, int32_t *x_out_game, int32_t *y_out_game) const
void ScrollView(float iX, float iY, float ViewWdt, float ViewHgt)
const char * GetCaption()
void Move(int32_t iButton, int32_t iX, int32_t iY, DWORD dwKeyFlags, bool fCenter=false)
bool ButtonDownOnSelection
int32_t UpdateSingleSelection()
C4Object * GetTargetObject()
void SetTooltipRectangle(const C4Rect &rectangle)
C4Object * DragImageObject
void Wheel(DWORD dwFlags)
void ButtonUpDragScript()
int32_t TimeInTooltipRectangle
bool Init(int32_t iPlayer)
void ClearPointers(C4Object *pObj)
void UpdateCursorTarget()
void GetViewPos(float &riX, float &riY, float tx, float ty, const C4Facet &fctViewport) const
void DrawPicture(C4Facet &cgo, bool fSelected=false, C4DrawTransform *transform=nullptr)
bool GetDragImage(C4Object **drag_object, C4Def **drag_id) const
C4DefGraphics * GetGraphics() const
void DrawSelectMark(C4TargetFacet &cgo) const
virtual bool Add(C4Object *new_obj, SortType sort_type, C4ObjectList *sorted_list=nullptr)
int ObjectCount(C4ID id=C4ID::None) const
int ClearPointers(C4Object *obj)
C4Object * GetObject(int index=0) const
bool IsMouseControlAssigned(int32_t mouseevent) const
bool DoMouseInput(uint8_t mouse_id, int32_t mouseevent, float game_x, float game_y, float gui_x, float gui_y, DWORD flags)
bool ObjectInCrew(C4Object *tobj)
class C4PlayerControlAssignmentSet * ControlSet
bool IsViewLocked() const
void ScrollView(float iX, float iY, float ViewWdt, float ViewHgt)
C4Player * Get(int iPlayer) const
int32_t GetPropertyInt(C4PropertyName k, int32_t default_val=0) const
C4String * GetPropertyStr(C4PropertyName k) const
const char * GetCStr() const
void Set(const C4Facet &cpy)
C4TargetFacet last_gui_draw_cgo
void ScrollView(float by_x, float by_y)
C4TargetFacet last_game_draw_cgo
C4Viewport * GetViewport(int32_t player_nr, C4Viewport *prev=nullptr)
const char * getData() const