Hi,
the current dpi-value you could get this way:
Code: Select all
ImportC ""
g_object_get_property(*widget.GtkWidget, property.p-utf8, *gval)
g_value_get_uint(gval)
EndImport
Global.i gEvent, gQuit
#G_TYPE_UINT = 28
Procedure GetCurrentDpi()
Protected gVal.GValue
Protected.i Ret
g_value_init_(@gval, #G_TYPE_UINT)
g_object_get_property(gtk_settings_get_default_(), "gtk-xft-dpi", @gval)
Ret= g_value_get_uint(@gval)
g_value_unset_(@gval)
ProcedureReturn Ret
EndProcedure
If OpenWindow(0, 300, 200, 500, 200, "Get current dpi", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
Debug GetCurrentDpi()/1024
Repeat
If WaitWindowEvent() = #PB_Event_CloseWindow
gQuit= #True
EndIf
Until gQuit
EndIf
If you want further information about the monitor:
Code: Select all
EnableExplicit
ImportC ""
gtk_widget_get_window(*widget.GtkWidget)
EndImport
ImportC ""
gdk_window_get_screen(*Window)
gdk_screen_get_monitor_height_mm(*screen.GdkScreen, monitor_num)
gdk_screen_get_monitor_width_mm(*screen.GdkScreen, monitor_num)
gdk_screen_get_monitor_plug_name(*screen.GdkScreen, monitor_num)
EndImport
; Object constants
#MainWin = 0
#But1 = 0
#WinX=300
#WinY=200
#WinW=200
#WinH=200
Global.i gEvent, gQuit
Global *screen.GdkScreen
Procedure.i GetGdkWindow(Window)
ProcedureReturn gtk_widget_get_window(WindowID(Window))
EndProcedure
Procedure GetWindowScreen(Window)
ProcedureReturn gdk_window_get_screen(GetGdkWindow(Window))
EndProcedure
If OpenWindow(#MainWin, #WinX, #WinY, #WinW, #WinH, "Get Screen data", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MaximizeGadget | #PB_Window_MinimizeGadget)
ButtonGadget(#But1, 5, 5, 190, 26, "Debug screen data")
Repeat
gEvent= WaitWindowEvent()
Select gEvent
Case #PB_Event_CloseWindow
gQuit= #True
Case #PB_Event_Gadget
If EventGadget()= #But1
*screen= GetWindowScreen(#MainWin)
Debug "Screen-adress : " + Str(*screen)
Debug "Screen-index : " + Str(gdk_screen_get_number_(*screen))
Debug "Display-Adress from Screen : " + Str(gdk_screen_get_display_(*screen))
Debug "Screen width : " + Str(gdk_screen_get_width_(*screen))
Debug "Screen height : " + Str(gdk_screen_get_height_(*screen))
Debug "Screen width [mm] : " + Str(gdk_screen_get_width_mm_(*screen))
Debug "Screen height [mm] : " + Str(gdk_screen_get_height_mm_(*screen))
Debug "Monitor number from Screen : " + Str(gdk_screen_get_n_monitors_(*screen))
Debug "Monitor width [mm] from Screen : " + Str(gdk_screen_get_monitor_width_mm(*screen, 0))
Debug "Monitor height [mm] from Screen: " + Str(gdk_screen_get_monitor_height_mm(*screen, 0))
Debug "Monitor plug name from Screen : " + PeekS(gdk_screen_get_monitor_plug_name(*screen, 0), -1, #PB_Ascii)
EndIf
EndSelect
Until gQuit
EndIf
Bye, Charly