//================================================================
// EQUINOX-3D
//
// - Application externs
//
// AUTHOR:  Gabor Nagy
// DATE:    2025-Feb-07 17:12:10
//
// Copyright (C) 1996-2026 by Gabor Nagy. All rights reserved.
//================================================================
#include "EQXTypes.h"

extern char*     Eqx_LoadedFileName;

extern XeWidget  Eqx_ModelPanelW, Eqx_PicturePanelW,
                 Eqx_TopWidget, Eqx_TopMatrixW,
                 Eqx_MenuBarW;

extern EqxPrefs  Eqx_Prefs;

extern char*     Eqx_VersionString;
extern char*     Eqx_ModelPath;

extern EBool     Eqx_SavePreferences(void);


//----------------------------------------
// editing.c
//----------------------------------------
extern void      Eqx_UndoSettings(void);


//--------------------------------
// main.c
//--------------------------------
extern XeWidget  Eqx_TopShellW, Eqx_3DPanelW;

extern void    Eqx_SetTitle(const char* PFileName);
extern void    Eqx_UpdateColors(void);


//--------------------------------
// menu.c
//--------------------------------
extern XeMenuRec*  Eqx_MainMenuBar;

extern XeWidget  Eqx_3DWindowHeadersMenuBW,
                 Eqx_MenuBarMenuBW,
                 Eqx_TransformPanelMenuBW,
                 Eqx_ToolBarMenuBW,
                 Eqx_StatusPanelMenuBW,
                 Eqx_TimePanelMenuBW,
                 Eqx_FullScreenMenuBW;


#ifdef __APPLE__
extern int  Eqx_CocoaMenuBarCreate(void);
#endif

//------------------------------------------------
// menuf.c
//------------------------------------------------
extern E3dpWindow*  Eqx_WindowNew(E3dViewClass* PViewClass, const E3dRendererClass* PRendererClass);
 
extern void  EqxMCB_File(XeWidget PW, EPointer PClientData, EPointer PCallData);
extern void  EqxMCB_Edit(XeWidget PW, EPointer PClientData, EPointer PCallData);
extern void  EqxMCB_Window(XeWidget, EPointer, EPointer);
extern void  EqxKCB_Toggle3DWindowHeaders(const unsigned short PKey, const unsigned int PModifiers, const int PKeyEventType, EPointer PClientData);

extern void  EqxMCB_TogglePanel(XeWidget, EPointer, EPointer);

extern void  EqxMCB_ToggleFullScreen(XeWidget PW, EPointer PClientData, EPointer PCallData);
extern void  EqxKCB_ToggleFullScreen(const unsigned short PKey, const unsigned int PModifiers, const int PKeyEventType, EPointer PClientData);

extern void  EqxMCB_PluginManager(XeWidget, EPointer, EPointer);
extern void  EqxCB_SetToggle(XeWidget PW, EPointer PClientData, EPointer PCallData);


//------------------------------------------------
// E3MenuF.c
//------------------------------------------------
extern void  E3dpMCB_Debug(XeWidget PW, EPointer PClientData, EPointer PCallData);
extern void  EqxKCB(const unsigned short PKey, const unsigned int PModifiers, const int PKeyEventType, EPointer PClientData);

extern XeWidget  Eqx_AboutDialogW;

extern void      Eqx_About(void);


//------------------------------------------------
// prefs.c	
//------------------------------------------------
extern void	EqxMCB_Preferences(XeWidget PW, EPointer PClientData, EPointer PCallData);
