Compare commits
141 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2992461c2a | |||
| 7f36b9665a | |||
| 314fdec2b2 | |||
| 39d1638997 | |||
| 5065f87560 | |||
| d5607bc8df | |||
| 5799d6efa9 | |||
| 6b6f52faf8 | |||
| c6eff1ad06 | |||
| 5b88fdd683 | |||
| f9d25a040d | |||
| 9c30f6dd64 | |||
| 5495d477e2 | |||
| 18da48edf9 | |||
| 2de4b5bd7a | |||
| 463ef2ed50 | |||
| d43bc5cdd8 | |||
| 879bfba4cc | |||
| c487b5878e | |||
| b1499832c0 | |||
| fefb55c088 | |||
| 757386cc97 | |||
| b952930639 | |||
| 50065b7ba0 | |||
| d0895d6c0f | |||
| 32bd10bf74 | |||
| 54ffc982e9 | |||
| c7cf937789 | |||
| 9d55b3c6fd | |||
| dfb619eede | |||
| c4539df2f2 | |||
| 8ee578468d | |||
| b5ee44b419 | |||
| 86d3f793cd | |||
| 36f65ce291 | |||
| afe8ce2ef7 | |||
| e45f463723 | |||
| 02e9152738 | |||
| 4bb90a7443 | |||
| d434a9103c | |||
| bbfc8f9a9b | |||
| 98b37191eb | |||
| ed5649a44b | |||
| c6eddaafed | |||
| 560597da05 | |||
| e97262489c | |||
| ce0675f1fb | |||
| 46ef9a83bb | |||
| 399ffbb230 | |||
| 5e4e724a8e | |||
| 3edf7678bd | |||
| 1819cf02a9 | |||
| 16e902d20a | |||
| 4bd7102358 | |||
| b1320b52c0 | |||
| b234025410 | |||
| 4fa8029906 | |||
| 6fd897bb10 | |||
| 282e7c390e | |||
| 9294585cd6 | |||
| 82928c2a2a | |||
| 67635e9177 | |||
| d7184d6500 | |||
| 5d19e13269 | |||
| 76ab40c195 | |||
| e58bba74ce | |||
| 14374751de | |||
| 61344219d4 | |||
| a07f767ed4 | |||
| 894f84c623 | |||
| f4e5d98d1f | |||
| 72d3e7b9f3 | |||
| 67d557b53f | |||
| d85d3a5a96 | |||
| f50ce1f7aa | |||
| 89338dff4e | |||
| 1708ae3f1a | |||
| a41b73fbc7 | |||
| 8e80fd1ab9 | |||
| 983e266fad | |||
| df3e19b449 | |||
| 00a107cc4c | |||
| 919a5e3e24 | |||
| d861779b69 | |||
| f6f2bfdca2 | |||
| 332a7c9c6e | |||
| 77154f295f | |||
| 158d74d257 | |||
| cefcafc508 | |||
| ac5cc19836 | |||
| 2deb41fe63 | |||
| 039cc929ad | |||
| 0f67bd7cfe | |||
| 76670734f4 | |||
| 73cee58d23 | |||
| 7b4c49a95f | |||
| 3c690c52ba | |||
| de08716526 | |||
| 0ed47e1bb7 | |||
| 3166588033 | |||
| 588513fc9a | |||
| 609723b3c1 | |||
| 3eef3290ad | |||
| 13eeb6ca33 | |||
| b2043511ee | |||
| 200d6fe664 | |||
| e1efe3269c | |||
| 84679ba78b | |||
| 78ce2563be | |||
| f6d6e932de | |||
| 5507954e04 | |||
| 8028a5b24a | |||
| c91843edea | |||
| 8596142336 | |||
| 01be4ce166 | |||
| ed38dbe28f | |||
| 9ed7e883f2 | |||
| edf19ab7b4 | |||
| afa3d611d6 | |||
| a4f11fa4f5 | |||
| c3607fd551 | |||
| 30a4150c8e | |||
| 23b039c8cd | |||
| b36b89151e | |||
| e3206b9de4 | |||
| c84e303fb5 | |||
| 2b83062fc6 | |||
| 0c58cb744c | |||
| 8857766b5a | |||
| 08a6f554c3 | |||
| 7800e68b73 | |||
| eb4792128f | |||
| bb4953f3e8 | |||
| 63f0797e70 | |||
| 1f95eddbda | |||
| 8fa1b2bb9d | |||
| d7ea5b5266 | |||
| c1a4a1da10 | |||
| fe5146d8f2 | |||
| 2145907cfe | |||
| 2516574832 |
@@ -16,10 +16,12 @@ EXTRA_DIST += \
|
||||
gtk.vcxproj.filtersin \
|
||||
gtk3-demo.vcxproj \
|
||||
gtk3-demo.vcxproj.filters \
|
||||
libgail.vcxproj \
|
||||
libgail.vcxproj.filters \
|
||||
libgail.vcxprojin \
|
||||
libgail.vcxproj.filtersin \
|
||||
gtk3-demo-application.vcxproj \
|
||||
gtk3-demo-application.vcxproj.filters \
|
||||
gtka11y.vcxproj \
|
||||
gtka11y.vcxproj.filters \
|
||||
gtka11y.vcxprojin \
|
||||
gtka11y.vcxproj.filtersin \
|
||||
gailutil.vcxproj \
|
||||
gailutil.vcxproj.filters \
|
||||
install.vcxproj
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ModuleDefinitionFile>..\..\..\libgail-util\gailutil.def</ModuleDefinitionFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib</ImportLibrary>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
@@ -114,7 +114,7 @@
|
||||
<ModuleDefinitionFile>..\..\..\libgail-util\gailutil.def</ModuleDefinitionFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib</ImportLibrary>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@@ -136,7 +136,7 @@
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ModuleDefinitionFile>..\..\..\libgail-util\gailutil.def</ModuleDefinitionFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib</ImportLibrary>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
@@ -161,7 +161,7 @@
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib</ImportLibrary>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@@ -86,12 +86,12 @@
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>imm32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>imm32.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ModuleDefinitionFile>$(IntDir)gdk.def</ModuleDefinitionFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib</ImportLibrary>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@@ -106,14 +106,14 @@
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>imm32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>imm32.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ModuleDefinitionFile>$(IntDir)gdk.def</ModuleDefinitionFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib</ImportLibrary>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@@ -131,12 +131,12 @@
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>imm32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>imm32.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ModuleDefinitionFile>$(IntDir)gdk.def</ModuleDefinitionFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib</ImportLibrary>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@@ -151,14 +151,14 @@
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>imm32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>imm32.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ModuleDefinitionFile>$(IntDir)gdk.def</ModuleDefinitionFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib</ImportLibrary>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
+371
-342
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk", "gtk.vcxproj", "{FC5A
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-demo", "gtk3-demo.vcxproj", "{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FC}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgail", "libgail.vcxproj", "{F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-demo-application", "gtk3-demo-application.vcxproj", "{3281202A-CD26-4C67-B892-EB34BDBC612F}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtka11y", "gtka11y.vcxproj", "{F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gailutil", "gailutil.vcxproj", "{29E3E814-1BA3-4AD7-A3A7-3669CB80A942}"
|
||||
EndProject
|
||||
@@ -78,6 +80,14 @@ Global
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FB}.Release|Win32.Build.0 = Release|Win32
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FB}.Release|x64.ActiveCfg = Release|x64
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FB}.Release|x64.Build.0 = Release|x64
|
||||
{3281202A-CD26-4C67-B892-EB34BDBC612F}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{3281202A-CD26-4C67-B892-EB34BDBC612F}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{3281202A-CD26-4C67-B892-EB34BDBC612F}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{3281202A-CD26-4C67-B892-EB34BDBC612F}.Debug|x64.Build.0 = Debug|x64
|
||||
{3281202A-CD26-4C67-B892-EB34BDBC612F}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{3281202A-CD26-4C67-B892-EB34BDBC612F}.Release|Win32.Build.0 = Release|Win32
|
||||
{3281202A-CD26-4C67-B892-EB34BDBC612F}.Release|x64.ActiveCfg = Release|x64
|
||||
{3281202A-CD26-4C67-B892-EB34BDBC612F}.Release|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
<ModuleDefinitionFile>$(IntDir)gtk.def</ModuleDefinitionFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib</ImportLibrary>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@@ -113,7 +113,7 @@
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib</ImportLibrary>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@@ -136,7 +136,7 @@
|
||||
<ModuleDefinitionFile>$(IntDir)gtk.def</ModuleDefinitionFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib</ImportLibrary>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@@ -158,7 +158,7 @@
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib</ImportLibrary>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@@ -204,7 +204,7 @@
|
||||
<Project>{fc5aadb5-95cd-4bf0-ba8b-0c16fe7073f7}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="libgail.vcxproj">
|
||||
<ProjectReference Include="gtka11y.vcxproj">
|
||||
<Project>{f756b0db-40a1-4e9f-be1f-8f02cb86ea46}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
|
||||
@@ -0,0 +1,170 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{3281202A-CD26-4C67-B892-EB34BDBC612F}</ProjectGuid>
|
||||
<RootNamespace>gtk3demoapplication</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="gtk+.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="gtk+.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="gtk+.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="gtk+.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Midl>
|
||||
<TargetEnvironment>X64</TargetEnvironment>
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Midl>
|
||||
<TargetEnvironment>X64</TargetEnvironment>
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\..\demos\gtk-demo\application-standalone.c" />
|
||||
<ClCompile Include="..\..\..\demos\gtk-demo\demo_resources.c" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="gdk.vcxproj">
|
||||
<Project>{fc5aadb5-95cd-4bf0-ba8b-0c16fe7073f7}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="gtk.vcxproj">
|
||||
<Project>{fc5aadb5-95cd-4bf0-ba8b-0c16fe7073f5}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Sources">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Headers">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\..\demos\gtk-demo\application-standalone.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\demos\gtk-demo\demo_resources.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -27,7 +27,7 @@
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
<PlatformToolset>v100</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
@@ -38,7 +38,7 @@
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
<PlatformToolset>v100</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
@@ -135,6 +135,7 @@
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
@@ -158,6 +159,7 @@
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
@@ -211,7 +213,6 @@
|
||||
<ClCompile Include="..\..\..\demos\gtk-demo\stock_browser.c" />
|
||||
<ClCompile Include="..\..\..\demos\gtk-demo\textscroll.c" />
|
||||
<ClCompile Include="..\..\..\demos\gtk-demo\textview.c" />
|
||||
<ClCompile Include="..\..\..\demos\gtk-demo\theming_custom_css.c" />
|
||||
<ClCompile Include="..\..\..\demos\gtk-demo\theming_style_classes.c" />
|
||||
<ClCompile Include="..\..\..\demos\gtk-demo\toolpalette.c" />
|
||||
<ClCompile Include="..\..\..\demos\gtk-demo\transparent.c" />
|
||||
|
||||
@@ -143,9 +143,6 @@
|
||||
<ClCompile Include="..\..\..\demos\gtk-demo\textview.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\demos\gtk-demo\theming_custom_css.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\demos\gtk-demo\theming_style_classes.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
|
||||
+2
-2
@@ -15,6 +15,6 @@
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
#include "libgail.vs10.sourcefiles.filters"
|
||||
#include "gtka11y.vs10.sourcefiles.filters"
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
</Project>
|
||||
@@ -20,7 +20,7 @@
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}</ProjectGuid>
|
||||
<RootNamespace>libgail</RootNamespace>
|
||||
<RootNamespace>gtka11y</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
@@ -120,9 +120,9 @@
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
#include "libgail.vs10.sourcefiles"
|
||||
#include "gtka11y.vs10.sourcefiles"
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
</Project>
|
||||
@@ -113,6 +113,10 @@
|
||||
<Project>{29e3e814-1ba3-4ad7-a3a7-3669cb80a942}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="gtk-demo-application.vcxproj">
|
||||
<Project>{3281202a-cd26-4c67-b892-eb34bdbc612f}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
|
||||
@@ -10,8 +10,9 @@ EXTRA_DIST += \
|
||||
gtk.vcproj \
|
||||
gtk.vcprojin \
|
||||
gtk3-demo.vcproj \
|
||||
libgail.vcproj \
|
||||
libgail.vcprojin \
|
||||
gtk3-demo-application.vcproj \
|
||||
gtka11y.vcproj \
|
||||
gtka11y.vcprojin \
|
||||
gailutil.vcproj \
|
||||
install.vcproj
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll"
|
||||
GenerateDebugInformation="true"
|
||||
ModuleDefinitionFile="..\..\..\libgail-util\gailutil.def"
|
||||
ImportLibrary="$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib"
|
||||
ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
|
||||
SubSystem="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
@@ -81,7 +81,7 @@
|
||||
ModuleDefinitionFile="..\..\..\libgail-util\gailutil.def"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
ImportLibrary="$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib"
|
||||
ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
|
||||
TargetMachine="17"
|
||||
/>
|
||||
</Configuration>
|
||||
@@ -114,7 +114,7 @@
|
||||
OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll"
|
||||
GenerateDebugInformation="true"
|
||||
ModuleDefinitionFile="..\..\..\libgail-util\gailutil.def"
|
||||
ImportLibrary="$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib"
|
||||
ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
|
||||
SubSystem="2"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
@@ -150,7 +150,7 @@
|
||||
SubSystem="2"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
ImportLibrary="$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib"
|
||||
ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
|
||||
TargetMachine="17"
|
||||
/>
|
||||
</Configuration>
|
||||
|
||||
@@ -42,13 +42,13 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="imm32.lib"
|
||||
AdditionalDependencies="imm32.lib winmm.lib"
|
||||
OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll"
|
||||
LinkIncremental="1"
|
||||
ModuleDefinitionFile="$(IntDir)\gdk.def"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
ImportLibrary="$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib"
|
||||
ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
</Configuration>
|
||||
@@ -73,7 +73,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="imm32.lib"
|
||||
AdditionalDependencies="imm32.lib winmm.lib"
|
||||
OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll"
|
||||
LinkIncremental="1"
|
||||
ModuleDefinitionFile="$(IntDir)\gdk.def"
|
||||
@@ -81,7 +81,7 @@
|
||||
SubSystem="2"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
ImportLibrary="$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib"
|
||||
ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
</Configuration>
|
||||
@@ -108,13 +108,13 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="imm32.lib"
|
||||
AdditionalDependencies="imm32.lib winmm.lib"
|
||||
OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll"
|
||||
LinkIncremental="1"
|
||||
ModuleDefinitionFile="$(IntDir)\gdk.def"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
ImportLibrary="$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib"
|
||||
ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
|
||||
TargetMachine="17"
|
||||
/>
|
||||
</Configuration>
|
||||
@@ -139,7 +139,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="imm32.lib"
|
||||
AdditionalDependencies="imm32.lib winmm.lib"
|
||||
OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll"
|
||||
LinkIncremental="1"
|
||||
ModuleDefinitionFile="$(IntDir)\gdk.def"
|
||||
@@ -147,7 +147,7 @@
|
||||
SubSystem="2"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
ImportLibrary="$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib"
|
||||
ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
|
||||
TargetMachine="17"
|
||||
/>
|
||||
</Configuration>
|
||||
|
||||
@@ -19,7 +19,13 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-demo", "gtk3-demo.vcpr
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5} = {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgail", "libgail.vcproj", "{F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-demo-application", "gtk3-demo-application.vcproj", "{3281202A-CD26-4C67-B892-EB34BDBC612F}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F7} = {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F7}
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5} = {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtka11y", "gtka11y.vcproj", "{F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gailutil", "gailutil.vcproj", "{29E3E814-1BA3-4AD7-A3A7-3669CB80A942}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
@@ -33,6 +39,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "install", "install.vcproj",
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5} = {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5}
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FC} = {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FC}
|
||||
{29E3E814-1BA3-4AD7-A3A7-3669CB80A942} = {29E3E814-1BA3-4AD7-A3A7-3669CB80A942}
|
||||
{3281202A-CD26-4C67-B892-EB34BDBC612F} = {3281202A-CD26-4C67-B892-EB34BDBC612F}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
@@ -99,6 +106,14 @@ Global
|
||||
{29E3E814-1BA3-4AD7-A3A7-3669CB80A942}.Release|Win32.Build.0 = Release|Win32
|
||||
{29E3E814-1BA3-4AD7-A3A7-3669CB80A942}.Release|x64.ActiveCfg = Release|x64
|
||||
{29E3E814-1BA3-4AD7-A3A7-3669CB80A942}.Release|x64.Build.0 = Release|x64
|
||||
{3281202A-CD26-4C67-B892-EB34BDBC612F}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{3281202A-CD26-4C67-B892-EB34BDBC612F}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{3281202A-CD26-4C67-B892-EB34BDBC612F}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{3281202A-CD26-4C67-B892-EB34BDBC612F}.Debug|x64.Build.0 = Debug|x64
|
||||
{3281202A-CD26-4C67-B892-EB34BDBC612F}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{3281202A-CD26-4C67-B892-EB34BDBC612F}.Release|Win32.Build.0 = Release|Win32
|
||||
{3281202A-CD26-4C67-B892-EB34BDBC612F}.Release|x64.ActiveCfg = Release|x64
|
||||
{3281202A-CD26-4C67-B892-EB34BDBC612F}.Release|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
+363
-337
@@ -27,16 +27,24 @@ copy ..\..\..\config.h.win32 ..\..\..\config.h

|
||||
copy ..\..\..\gdk\gdkconfig.h.win32 ..\..\..\gdk\gdkconfig.h

|
||||
"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="VSVer"
|
||||
Value="9"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="GlibEtcInstallRoot"
|
||||
Value="..\..\..\..\vs9\$(PlatformName)"
|
||||
Value="..\..\..\..\vs$(VSVer)\$(PlatformName)"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="GlibEtcInstallRootFromBuildWin32"
|
||||
Value="..\..\..\vs$(VSVer)\$(PlatformName)"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="CopyDir"
|
||||
Value="$(GlibEtcInstallRoot)"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="GtkApiVersion"
|
||||
Name="ApiVersion"
|
||||
Value="3.0"
|
||||
/>
|
||||
<UserMacro
|
||||
@@ -61,7 +69,7 @@ copy ..\..\..\gdk\gdkconfig.h.win32 ..\..\..\gdk\gdkconfig.h

|
||||
/>
|
||||
<UserMacro
|
||||
Name="GtkDefines"
|
||||
Value="GTK_COMPILATION;G_LOG_DOMAIN=\"Gtk\";GTK_HOST=\"i686-pc-vs9\";GTK_PRINT_BACKENDS=\"file\";GTK_PRINT_PREVIEW_COMMAND=\"undefined-gtk-print-preview-command\";$(GtkIncludedImmodulesDefines);GTK_LIBDIR=\"$(GtkDummyPrefix)/lib\";GTK_DATADIR=\"$(GtkDummyPrefix)/share\"GTK_DATA_PREFIX=\"$(GtkDummyPrefix)\";GTK_SYSCONFDIR=\"$(GtkDummyPrefix)/etc\";MULTIPRESS_CONFDIR=\"$(GtkDummyPrefix)/etc/gtk-$(GtkApiVersion)\";MULTIPRESS_LOCALEDIR=\"$(GtkDummyPrefix)/share/locale\";GTK_VERSION=\"$(GtkVersion)/etc\";GTK_BINARY_VERSION=\"$(GtkBinaryVersion)/etc\";GDK_DISABLE_DEPRECATED"
|
||||
Value="GTK_COMPILATION;G_LOG_DOMAIN=\"Gtk\";GTK_HOST=\"i686-pc-vs$(VSVer)\";GTK_PRINT_BACKENDS=\"file\";GTK_PRINT_PREVIEW_COMMAND=\"undefined-gtk-print-preview-command\";$(GtkIncludedImmodulesDefines);GTK_LIBDIR=\"$(GtkDummyPrefix)/lib\";GTK_DATADIR=\"$(GtkDummyPrefix)/share\"GTK_DATA_PREFIX=\"$(GtkDummyPrefix)\";GTK_SYSCONFDIR=\"$(GtkDummyPrefix)/etc\";MULTIPRESS_CONFDIR=\"$(GtkDummyPrefix)/etc/gtk-$(ApiVersion)\";MULTIPRESS_LOCALEDIR=\"$(GtkDummyPrefix)/share/locale\";GTK_VERSION=\"$(GtkVersion)/etc\";GTK_BINARY_VERSION=\"$(GtkBinaryVersion)/etc\";GDK_DISABLE_DEPRECATED"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="GtkDoInstall"
|
||||
@@ -71,356 +79,374 @@ mkdir $(CopyDir)\bin

|
||||
copy $(ConfigurationName)\$(PlatformName)\bin\*.dll $(CopyDir)\bin

|
||||
copy $(ConfigurationName)\$(PlatformName)\bin\*.exe $(CopyDir)\bin

|
||||
|
||||
mkdir $(CopyDir)\share\gtk-$(GtkApiVersion)\demo

|
||||
mkdir $(CopyDir)\share\gtk-$(ApiVersion)\demo

|
||||
|
||||
copy ..\..\..\demos\gtk-demo\*.c $(CopyDir)\share\gtk-$(GtkApiVersion)\demo

|
||||
copy ..\..\..\demos\gtk-demo\*.css $(CopyDir)\share\gtk-$(GtkApiVersion)\demo

|
||||
copy ..\..\..\demos\gtk-demo\*.h $(CopyDir)\share\gtk-$(GtkApiVersion)\demo

|
||||
copy ..\..\..\demos\gtk-demo\*.ui $(CopyDir)\share\gtk-$(GtkApiVersion)\demo

|
||||
copy ..\..\..\demos\gtk-demo\*.jpg $(CopyDir)\share\gtk-$(GtkApiVersion)\demo

|
||||
copy ..\..\..\demos\gtk-demo\*.png $(CopyDir)\share\gtk-$(GtkApiVersion)\demo

|
||||
copy ..\..\..\demos\gtk-demo\*.gif $(CopyDir)\share\gtk-$(GtkApiVersion)\demo

|
||||
copy ..\..\..\demos\gtk-demo\*.c $(CopyDir)\share\gtk-$(ApiVersion)\demo

|
||||
copy ..\..\..\demos\gtk-demo\*.css $(CopyDir)\share\gtk-$(ApiVersion)\demo

|
||||
copy ..\..\..\demos\gtk-demo\*.h $(CopyDir)\share\gtk-$(ApiVersion)\demo

|
||||
copy ..\..\..\demos\gtk-demo\*.ui $(CopyDir)\share\gtk-$(ApiVersion)\demo

|
||||
copy ..\..\..\demos\gtk-demo\*.jpg $(CopyDir)\share\gtk-$(ApiVersion)\demo

|
||||
copy ..\..\..\demos\gtk-demo\*.png $(CopyDir)\share\gtk-$(ApiVersion)\demo

|
||||
copy ..\..\..\demos\gtk-demo\*.gif $(CopyDir)\share\gtk-$(ApiVersion)\demo

|
||||
|
||||
mkdir $(CopyDir)\lib

|
||||
copy $(ConfigurationName)\$(PlatformName)\bin\*-$(GtkApiVersion).lib $(CopyDir)\lib

|
||||
copy $(ConfigurationName)\$(PlatformName)\bin\*-$(ApiVersion).lib $(CopyDir)\lib

|
||||
|
||||
mkdir $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdk.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkapplaunchcontext.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkcairo.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkcolor.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkcursor.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkdevice.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkdevicemanager.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkdisplay.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkdisplaymanager.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkdnd.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkenumtypes.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkevents.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkkeys.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkkeysyms.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkmain.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkpango.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkpixbuf.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkprivate.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkproperty.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkrectangle.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkrgba.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkscreen.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkselection.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdktestutils.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkthreads.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdktypes.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkversionmacros.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkvisual.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\win32\gdkwin32.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkwindow.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
mkdir $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdk.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkapplaunchcontext.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkcairo.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkcolor.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkcursor.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkdevice.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkdevicemanager.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkdisplay.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkdisplaymanager.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkdnd.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkenumtypes.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkevents.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkframeclock.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkframetimings.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkkeys.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkkeysyms.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkmain.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkpango.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkpixbuf.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkprivate.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkproperty.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkrectangle.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkrgba.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkscreen.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkselection.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdktestutils.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkthreads.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdktypes.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkversionmacros.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkvisual.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\win32\gdkwin32.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkwindow.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk

|
||||
|
||||
mkdir $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk\win32

|
||||
copy ..\..\..\gdk\win32\gdkwin32cursor.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk\win32

|
||||
copy ..\..\..\gdk\win32\gdkwin32display.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk\win32

|
||||
copy ..\..\..\gdk\win32\gdkwin32displaymanager.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk\win32

|
||||
copy ..\..\..\gdk\win32\gdkwin32dnd.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk\win32

|
||||
copy ..\..\..\gdk\win32\gdkwin32keys.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk\win32

|
||||
copy ..\..\..\gdk\win32\gdkwin32screen.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk\win32

|
||||
copy ..\..\..\gdk\win32\gdkwin32window.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gdk\win32

|
||||
mkdir $(CopyDir)\include\gtk-$(ApiVersion)\gdk\win32

|
||||
copy ..\..\..\gdk\win32\gdkwin32cursor.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk\win32

|
||||
copy ..\..\..\gdk\win32\gdkwin32display.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk\win32

|
||||
copy ..\..\..\gdk\win32\gdkwin32displaymanager.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk\win32

|
||||
copy ..\..\..\gdk\win32\gdkwin32dnd.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk\win32

|
||||
copy ..\..\..\gdk\win32\gdkwin32keys.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk\win32

|
||||
copy ..\..\..\gdk\win32\gdkwin32screen.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk\win32

|
||||
copy ..\..\..\gdk\win32\gdkwin32window.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk\win32

|
||||
|
||||
mkdir $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtk.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkx.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtk-a11y.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkaboutdialog.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkaccelgroup.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkaccelgroupprivate.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkaccellabel.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkaccelmap.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkaction.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkactiongroup.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkactionable.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkactivatable.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkadjustment.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkalignment.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkappchooser.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkappchooserbutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkappchooserdialog.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkappchooserwidget.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkapplication.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkapplicationwindow.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkarrow.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkaspectframe.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkassistant.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkbbox.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkbin.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkbindings.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkbox.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkborder.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkbuildable.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkbuilder.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkbutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcalendar.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcellarea.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcellareabox.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcellareacontext.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcelleditable.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcelllayout.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcellrenderer.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcellrendereraccel.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcellrenderercombo.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcellrendererpixbuf.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcellrendererprogress.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcellrendererspin.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcellrendererspinner.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcellrenderertext.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcellrenderertoggle.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcellview.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcheckbutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcheckmenuitem.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkclipboard.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcolorbutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcolorchooser.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcolorchooserwidget.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcolorchooserdialog.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcolorutils.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcombobox.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcomboboxtext.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcontainer.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcssprovider.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcsssection.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkdebug.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkdialog.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkdnd.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkdrawingarea.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkeditable.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkentry.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkentrybuffer.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkentrycompletion.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkenums.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkeventbox.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkexpander.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkfilechooser.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkfilechooserbutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkfilechooserdialog.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkfilechooserwidget.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkfilefilter.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkfixed.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkfontbutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkfontchooser.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkfontchooserdialog.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkfontchooserwidget.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkframe.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkgrid.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkiconfactory.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkicontheme.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkiconview.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkimage.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkimagemenuitem.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkimcontext.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkimcontextinfo.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkimcontextsimple.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkimmodule.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkimmulticontext.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkinfobar.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkinvisible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtklabel.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtklayout.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtklevelbar.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtklinkbutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkliststore.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtklockbutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkmain.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkmenu.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkmenubar.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkmenubutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkmenuitem.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkmenushell.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkmenutoolbutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkmessagedialog.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkmisc.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkmodules.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkmountoperation.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtknotebook.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtknumerableicon.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkoffscreenwindow.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkorientable.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkoverlay.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkpagesetup.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkpaned.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkpapersize.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkplug.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkprintcontext.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkprintoperation.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkprintoperationpreview.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkprintsettings.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkprivate.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkprivatetypebuiltins.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkprogressbar.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkradioaction.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkradiobutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkradiomenuitem.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkradiotoolbutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkrange.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkrecentaction.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkrecentchooser.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkrecentchooserdialog.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkrecentchoosermenu.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkrecentchooserwidget.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkrecentfilter.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkrecentmanager.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkscale.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkscalebutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkscrollable.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkscrollbar.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkscrolledwindow.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtksearchentry.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkselection.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkseparator.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkseparatormenuitem.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkseparatortoolitem.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtksettings.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkshow.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtksizegroup.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtksizerequest.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtksocket.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkspinbutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkspinner.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkstatusbar.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkstatusicon.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkstock.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkstylecontext.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkstyleproperties.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkstyleprovider.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkswitch.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktestutils.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktextattributes.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktextbuffer.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktextbufferrichtext.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktextchild.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktextdisplay.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktextiter.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktextlayout.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktextmark.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktexttag.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktexttagtable.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktextview.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkthemingengine.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktoggleaction.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktogglebutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktoggletoolbutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktoolbar.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktoolbutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktoolitem.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktoolitemgroup.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktoolpalette.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktoolshell.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktooltip.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktreednd.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktreemodel.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktreemodelfilter.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktreemodelsort.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktreeselection.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktreesortable.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktreestore.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktreeview.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktreeviewcolumn.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktypebuiltins.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktypes.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkuimanager.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkversion.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkviewport.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkvolumebutton.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk
;
|
||||
copy ..\..\..\gtk\gtkwidget.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkwidgetpath.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkwindow.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk

|
||||
mkdir $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtk.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkx.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtk-a11y.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkaboutdialog.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkaccelgroup.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkaccelgroupprivate.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkaccellabel.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkaccelmap.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkaction.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkactiongroup.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkactionable.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkactivatable.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkadjustment.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkalignment.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkappchooser.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkappchooserbutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkappchooserdialog.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkappchooserwidget.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkapplication.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkapplicationwindow.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkarrow.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkaspectframe.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkassistant.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkbbox.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkbin.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkbindings.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkbox.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkborder.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkbuildable.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkbuilder.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkbutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcalendar.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcellarea.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcellareabox.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcellareacontext.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcelleditable.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcelllayout.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcellrenderer.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcellrendereraccel.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcellrenderercombo.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcellrendererpixbuf.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcellrendererprogress.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcellrendererspin.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcellrendererspinner.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcellrenderertext.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcellrenderertoggle.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcellview.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcheckbutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcheckmenuitem.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkclipboard.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcolorbutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcolorchooser.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcolorchooserwidget.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcolorchooserdialog.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcolorutils.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcombobox.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcomboboxtext.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcontainer.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcssprovider.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkcsssection.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkdebug.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkdialog.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkdnd.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkdrawingarea.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkeditable.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkentry.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkentrybuffer.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkentrycompletion.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkenums.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkeventbox.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkexpander.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkfilechooser.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkfilechooserbutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkfilechooserdialog.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkfilechooserwidget.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkfilefilter.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkfixed.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkfontbutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkfontchooser.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkfontchooserdialog.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkfontchooserwidget.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkframe.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkgrid.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkiconfactory.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkicontheme.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkiconview.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkimage.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkimagemenuitem.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkimcontext.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkimcontextinfo.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkimcontextsimple.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkimmodule.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkimmulticontext.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkinfobar.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkinvisible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtklabel.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtklayout.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtklevelbar.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtklinkbutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkliststore.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtklockbutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkmain.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkmenu.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkmenubar.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkmenubutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkmenuitem.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkmenushell.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkmenutoolbutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkmessagedialog.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkmisc.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkmodules.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkmountoperation.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtknotebook.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtknumerableicon.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkoffscreenwindow.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkorientable.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkoverlay.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkpagesetup.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkpaned.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkpapersize.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkplug.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkprintcontext.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkprintoperation.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkprintoperationpreview.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkprintsettings.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkprivate.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkprivatetypebuiltins.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkprogressbar.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkradioaction.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkradiobutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkradiomenuitem.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkradiotoolbutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkrange.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkrecentaction.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkrecentchooser.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkrecentchooserdialog.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkrecentchoosermenu.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkrecentchooserwidget.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkrecentfilter.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkrecentmanager.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkscale.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkscalebutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkscrollable.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkscrollbar.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkscrolledwindow.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtksearchentry.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkselection.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkseparator.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkseparatormenuitem.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkseparatortoolitem.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtksettings.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkshow.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtksizegroup.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtksizerequest.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtksocket.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkspinbutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkspinner.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkstatusbar.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkstatusicon.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkstock.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkstylecontext.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkstyleproperties.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkstyleprovider.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkswitch.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktestutils.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktextattributes.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktextbuffer.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktextbufferrichtext.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktextchild.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktextdisplay.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktextiter.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktextlayout.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktextmark.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktexttag.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktexttagtable.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktextview.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkthemingengine.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktoggleaction.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktogglebutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktoggletoolbutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktoolbar.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktoolbutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktoolitem.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktoolitemgroup.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktoolpalette.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktoolshell.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktooltip.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktreednd.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktreemodel.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktreemodelfilter.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktreemodelsort.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktreeselection.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktreesortable.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktreestore.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktreeview.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktreeviewcolumn.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktypebuiltins.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtktypes.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkuimanager.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkversion.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkviewport.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkvolumebutton.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk
;
|
||||
copy ..\..\..\gtk\gtkwidget.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkwidgetpath.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
copy ..\..\..\gtk\gtkwindow.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk

|
||||
|
||||
mkdir $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated

|
||||
mkdir $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated

|
||||
|
||||
copy ..\..\..\gtk\deprecated\gtkcolorsel.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkcolorseldialog.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkfontsel.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkgradient.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkhandlebox.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkhbbox.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkhbox.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkhpaned.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkhscale.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkhsv.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkhscrollbar.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkhseparator.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkrc.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkstyle.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtksymboliccolor.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtktable.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtktearoffmenuitem.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkvbbox.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkvbox.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkvscale.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkvscrollbar.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkvseparator.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkvpaned.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkcolorsel.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkcolorseldialog.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkfontsel.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkgradient.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkhandlebox.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkhbbox.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkhbox.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkhpaned.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkhscale.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkhsv.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkhscrollbar.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkhseparator.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkrc.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkstyle.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtksymboliccolor.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtktable.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtktearoffmenuitem.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkvbbox.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkvbox.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkvscale.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkvscrollbar.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkvseparator.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated

|
||||
copy ..\..\..\gtk\deprecated\gtkvpaned.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\deprecated

|
||||
|
||||
mkdir $(CopyDir)\include\gtk-$(GtkApiVersion)\a11y

|
||||
mkdir $(CopyDir)\include\gtk-$(ApiVersion)\a11y

|
||||
|
||||
copy ..\..\..\gtk\a11y\gtkarrowaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkbooleancellaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkbuttonaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkcellaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkcellaccessibleparent.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkcheckmenuitemaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkcomboboxaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkcontaineraccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkcontainercellaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkentryaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkexpanderaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkframeaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkiconviewaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkimageaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkimagecellaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtklabelaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtklinkbuttonaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtklockbuttonaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkmenuaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkmenuitemaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkmenushellaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtknotebookaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtknotebookpageaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkpanedaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkprogressbaraccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkradiobuttonaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkradiomenuitemaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkrangeaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkrenderercellaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkscaleaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkscalebuttonaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkscrolledwindowaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkspinbuttonaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkspinneraccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkstatusbaraccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkswitchaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtktextcellaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtktextviewaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtktogglebuttonaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtktoplevelaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtktreeviewaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkwidgetaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkwindowaccessible.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkarrowaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkbooleancellaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkbuttonaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkcellaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkcellaccessibleparent.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkcheckmenuitemaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkcomboboxaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkcontaineraccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkcontainercellaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkentryaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkexpanderaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkframeaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkiconviewaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkimageaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkimagecellaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtklabelaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtklevelbaraccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtklinkbuttonaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtklockbuttonaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkmenuaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkmenuitemaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkmenushellaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtknotebookaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtknotebookpageaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkpanedaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkprogressbaraccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkradiobuttonaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkradiomenuitemaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkrangeaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkrenderercellaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkscaleaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkscalebuttonaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkscrolledwindowaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkspinbuttonaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkspinneraccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkstatusbaraccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkswitchaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtktextcellaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtktextviewaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtktogglebuttonaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtktoplevelaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtktreeviewaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkwidgetaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
copy ..\..\..\gtk\a11y\gtkwindowaccessible.h $(CopyDir)\include\gtk-$(ApiVersion)\gtk\a11y

|
||||
|
||||
mkdir $(CopyDir)\include\gail-$(GtkApiVersion)\libgail-util

|
||||
copy ..\..\..\libgail-util\gail-util.h $(CopyDir)\include\gail-$(GtkApiVersion)\libgail-util

|
||||
copy ..\..\..\libgail-util\gailmisc.h $(CopyDir)\include\gail-$(GtkApiVersion)\libgail-util

|
||||
copy ..\..\..\libgail-util\gailtextutil.h $(CopyDir)\include\gail-$(GtkApiVersion)\libgail-util

|
||||
mkdir $(CopyDir)\include\gail-$(ApiVersion)\libgail-util

|
||||
copy ..\..\..\libgail-util\gail-util.h $(CopyDir)\include\gail-$(ApiVersion)\libgail-util

|
||||
copy ..\..\..\libgail-util\gailmisc.h $(CopyDir)\include\gail-$(ApiVersion)\libgail-util

|
||||
copy ..\..\..\libgail-util\gailtextutil.h $(CopyDir)\include\gail-$(ApiVersion)\libgail-util

|
||||
|
||||
copy ..\..\..\gdk\gdkconfig.h $(CopyDir)\include\gtk-3.0\gdk

|
||||
|
||||
copy $(ConfigurationName)\$(PlatformName)\bin\*-$(GtkApiVersion).lib $(CopyDir)\lib

|
||||
copy $(ConfigurationName)\$(PlatformName)\bin\*-$(ApiVersion).lib $(CopyDir)\lib

|
||||
|
||||
mkdir $(CopyDir)\share\glib-2.0\schemas

|
||||
copy ..\..\..\gtk\org.gtk.Settings.FileChooser.gschema.xml $(CopyDir)\share\glib-2.0\schemas

|
||||
copy ..\..\..\gtk\org.gtk.Settings.ColorChooser.gschema.xml $(CopyDir)\share\glib-2.0\schemas

|
||||
copy ..\..\..\demos\gtk-demo\org.gtk.Demo.gschema.xml $(CopyDir)\share\glib-2.0\schemas

|
||||
|
||||
echo "Compiling gsettings XML Files..."

|
||||
$(CopyDir)\bin\glib-compile-schemas.exe $(CopyDir)\share\glib-2.0\schemas

|
||||
"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="DoGenGir"
|
||||
Value="
|
||||
set VSVER=$(VSVer)

|
||||
set CONF=$(ConfigurationName)

|
||||
set PLAT=$(PlatformName)

|
||||
set BASEDIR=$(GlibEtcInstallRootFromBuildWin32)

|
||||
cd ..

|
||||
|
||||
call gengir_gtk.bat

|
||||
cd vs$(VSVer)

|
||||
"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="GtkGenerateGdkDef"
|
||||
Value="echo EXPORTS >"$(IntDir)\gdk.def" && cl /EP -DGDK_WINDOWING_WIN32 -DALL_FILES -DG_GNUC_CONST= ..\..\..\gdk\gdk.symbols >>"$(IntDir)\gdk.def""
|
||||
@@ -435,24 +461,24 @@ $(CopyDir)\bin\glib-compile-schemas.exe $(CopyDir)\share\glib-2.0\schemas
&
|
||||
/>
|
||||
<UserMacro
|
||||
Name="GtkLibtoolCompatibleDllSuffix"
|
||||
Value="-$(GtkApiVersion)-0"
|
||||
Value="-$(ApiVersion)-0"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="GtkSeparateVS9DllPrefix"
|
||||
Name="GtkSeparateVSDllPrefix"
|
||||
Value=""
|
||||
/>
|
||||
<UserMacro
|
||||
Name="GtkSeparateVS9DllSuffix"
|
||||
Value="-3-vs9"
|
||||
Name="GtkSeparateVSDllSuffix"
|
||||
Value="-3-vs$(VSVer)"
|
||||
/>
|
||||
<!-- Change these two to GtkLibtoolCompatibleDllPrefix and
|
||||
GtkLibtoolCompatibleDllSuffix if that is what you want -->
|
||||
<UserMacro
|
||||
Name="GtkDllPrefix"
|
||||
Value="$(GtkSeparateVS9DllPrefix)"
|
||||
Value="$(GtkSeparateVSDllPrefix)"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="GtkDllSuffix"
|
||||
Value="$(GtkSeparateVS9DllSuffix)"
|
||||
Value="$(GtkSeparateVSDllSuffix)"
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
ModuleDefinitionFile="$(IntDir)\gtk.def"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
ImportLibrary="$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib"
|
||||
ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
</Configuration>
|
||||
@@ -81,7 +81,7 @@
|
||||
SubSystem="2"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
ImportLibrary="$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib"
|
||||
ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
</Configuration>
|
||||
@@ -114,7 +114,7 @@
|
||||
ModuleDefinitionFile="$(IntDir)\gtk.def"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
ImportLibrary="$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib"
|
||||
ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
|
||||
TargetMachine="17"
|
||||
/>
|
||||
</Configuration>
|
||||
@@ -147,7 +147,7 @@
|
||||
SubSystem="2"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
ImportLibrary="$(TargetDir)$(ProjectName)-$(GtkApiVersion).lib"
|
||||
ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
|
||||
TargetMachine="17"
|
||||
/>
|
||||
</Configuration>
|
||||
|
||||
@@ -0,0 +1,169 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="gtk3-demo-application"
|
||||
ProjectGUID="{3281202A-CD26-4C67-B892-EB34BDBC612F}"
|
||||
RootNamespace="gtk3demoapplication"
|
||||
Keyword="Win32Proj"
|
||||
TargetFrameworkVersion="196613"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
<Platform
|
||||
Name="x64"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
InheritedPropertySheets=".\gtk+.vsprops"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
InheritedPropertySheets=".\gtk+.vsprops"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2"
|
||||
WholeProgramOptimization="0"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
PreprocessorDefinitions=""
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
LinkIncremental="1"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|x64"
|
||||
InheritedPropertySheets=".\gtk+.vsprops"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
TargetMachine="17"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|x64"
|
||||
InheritedPropertySheets=".\gtk+.vsprops"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2"
|
||||
WholeProgramOptimization="0"
|
||||
>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
PreprocessorDefinitions=""
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
LinkIncremental="1"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="17"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Sources"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
</Filter>
|
||||
<File RelativePath="..\..\..\demos\gtk-demo\application-standalone.c" />
|
||||
<File RelativePath="..\..\..\demos\gtk-demo\demo_resources.c" />
|
||||
<Filter
|
||||
Name="Headers"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||
>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
@@ -90,7 +90,7 @@
|
||||
ConfigurationType="1"
|
||||
InheritedPropertySheets=".\gtk+.vsprops"
|
||||
CharacterSet="2"
|
||||
WholeProgramOptimization="1"
|
||||
WholeProgramOptimization="0"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
@@ -123,7 +123,7 @@
|
||||
ConfigurationType="1"
|
||||
InheritedPropertySheets=".\gtk+.vsprops"
|
||||
CharacterSet="2"
|
||||
WholeProgramOptimization="1"
|
||||
WholeProgramOptimization="0"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
@@ -204,7 +204,6 @@
|
||||
<File RelativePath="..\..\..\demos\gtk-demo\stock_browser.c" />
|
||||
<File RelativePath="..\..\..\demos\gtk-demo\textscroll.c" />
|
||||
<File RelativePath="..\..\..\demos\gtk-demo\textview.c" />
|
||||
<File RelativePath="..\..\..\demos\gtk-demo\theming_custom_css.c" />
|
||||
<File RelativePath="..\..\..\demos\gtk-demo\theming_style_classes.c" />
|
||||
<File RelativePath="..\..\..\demos\gtk-demo\toolpalette.c" />
|
||||
<File RelativePath="..\..\..\demos\gtk-demo\transparent.c" />
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="libgail"
|
||||
Name="gtka11y"
|
||||
ProjectGUID="{F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}"
|
||||
RootNamespace="libgail"
|
||||
RootNamespace="gtka11y"
|
||||
Keyword="Win32Proj"
|
||||
TargetFrameworkVersion="196613"
|
||||
>
|
||||
@@ -115,7 +115,7 @@
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
#include "libgail.sourcefiles"
|
||||
#include "gtka11y.sourcefiles"
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Headers"
|
||||
+1
-1
@@ -10,7 +10,7 @@
|
||||
|
||||
m4_define([gtk_major_version], [3])
|
||||
m4_define([gtk_minor_version], [7])
|
||||
m4_define([gtk_micro_version], [10])
|
||||
m4_define([gtk_micro_version], [11])
|
||||
m4_define([gtk_interface_age], [0])
|
||||
m4_define([gtk_binary_age],
|
||||
[m4_eval(100 * gtk_minor_version + gtk_micro_version)])
|
||||
|
||||
+49
-48
@@ -9,8 +9,8 @@
|
||||
|
||||
#include "demos.h"
|
||||
|
||||
static GtkTextBuffer *info_buffer;
|
||||
static GtkTextBuffer *source_buffer;
|
||||
static GtkWidget *info_view;
|
||||
static GtkWidget *source_view;
|
||||
|
||||
static gchar *current_file = NULL;
|
||||
|
||||
@@ -353,7 +353,7 @@ parse_chars (gchar *text,
|
||||
|
||||
/* While not as cool as c-mode, this will do as a quick attempt at highlighting */
|
||||
static void
|
||||
fontify (void)
|
||||
fontify (GtkTextBuffer *source_buffer)
|
||||
{
|
||||
GtkTextIter start_iter, next_iter, tmp_iter;
|
||||
gint state;
|
||||
@@ -398,12 +398,11 @@ fontify (void)
|
||||
}
|
||||
}
|
||||
|
||||
static GtkWidget *create_text (GtkTextBuffer **buffer, gboolean is_source);
|
||||
static GtkWidget *create_text (GtkWidget **text_view, gboolean is_source);
|
||||
|
||||
static void
|
||||
add_data_tab (const gchar *demoname)
|
||||
{
|
||||
GtkTextBuffer *buffer = NULL;
|
||||
gchar *resource_dir, *resource_name, *content_type;
|
||||
gchar **resources;
|
||||
GBytes *bytes;
|
||||
@@ -440,8 +439,13 @@ add_data_tab (const gchar *demoname)
|
||||
}
|
||||
else if (g_content_type_is_a (content_type, "text/plain"))
|
||||
{
|
||||
widget = create_text (&buffer, FALSE);
|
||||
GtkTextBuffer *buffer;
|
||||
GtkWidget *textview;
|
||||
|
||||
widget = create_text (&textview, FALSE);
|
||||
buffer = gtk_text_buffer_new (NULL);
|
||||
gtk_text_buffer_set_text (buffer, g_bytes_get_data (bytes, NULL), g_bytes_get_size (bytes));
|
||||
gtk_text_view_set_buffer (GTK_TEXT_VIEW (textview), buffer);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -476,6 +480,7 @@ void
|
||||
load_file (const gchar *demoname,
|
||||
const gchar *filename)
|
||||
{
|
||||
GtkTextBuffer *info_buffer, *source_buffer;
|
||||
GtkTextIter start, end;
|
||||
char *resource_filename;
|
||||
GError *err = NULL;
|
||||
@@ -495,11 +500,34 @@ load_file (const gchar *demoname,
|
||||
g_free (current_file);
|
||||
current_file = g_strdup (filename);
|
||||
|
||||
gtk_text_buffer_get_bounds (info_buffer, &start, &end);
|
||||
gtk_text_buffer_delete (info_buffer, &start, &end);
|
||||
info_buffer = gtk_text_buffer_new (NULL);
|
||||
gtk_text_buffer_create_tag (info_buffer, "title",
|
||||
"font", "Sans 18",
|
||||
"pixels-below-lines", 10,
|
||||
NULL);
|
||||
|
||||
gtk_text_buffer_get_bounds (source_buffer, &start, &end);
|
||||
gtk_text_buffer_delete (source_buffer, &start, &end);
|
||||
source_buffer = gtk_text_buffer_new (NULL);
|
||||
gtk_text_buffer_create_tag (source_buffer, "comment",
|
||||
"foreground", "DodgerBlue",
|
||||
NULL);
|
||||
gtk_text_buffer_create_tag (source_buffer, "type",
|
||||
"foreground", "ForestGreen",
|
||||
NULL);
|
||||
gtk_text_buffer_create_tag (source_buffer, "string",
|
||||
"foreground", "RosyBrown",
|
||||
"weight", PANGO_WEIGHT_BOLD,
|
||||
NULL);
|
||||
gtk_text_buffer_create_tag (source_buffer, "control",
|
||||
"foreground", "purple",
|
||||
NULL);
|
||||
gtk_text_buffer_create_tag (source_buffer, "preprocessor",
|
||||
"style", PANGO_STYLE_OBLIQUE,
|
||||
"foreground", "burlywood4",
|
||||
NULL);
|
||||
gtk_text_buffer_create_tag (source_buffer, "function",
|
||||
"weight", PANGO_WEIGHT_BOLD,
|
||||
"foreground", "DarkGoldenrod4",
|
||||
NULL);
|
||||
|
||||
resource_filename = g_strconcat ("/sources/", filename, NULL);
|
||||
bytes = g_resources_lookup_data (resource_filename, 0, &err);
|
||||
@@ -629,9 +657,14 @@ load_file (const gchar *demoname,
|
||||
}
|
||||
}
|
||||
|
||||
fontify ();
|
||||
fontify (source_buffer);
|
||||
|
||||
g_strfreev (lines);
|
||||
|
||||
gtk_text_view_set_buffer (GTK_TEXT_VIEW (info_view), info_buffer);
|
||||
g_object_unref (info_buffer);
|
||||
gtk_text_view_set_buffer (GTK_TEXT_VIEW (source_view), source_buffer);
|
||||
g_object_unref (source_buffer);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -699,8 +732,8 @@ selection_cb (GtkTreeSelection *selection,
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
create_text (GtkTextBuffer **buffer,
|
||||
gboolean is_source)
|
||||
create_text (GtkWidget **view,
|
||||
gboolean is_source)
|
||||
{
|
||||
GtkWidget *scrolled_window;
|
||||
GtkWidget *text_view;
|
||||
@@ -713,11 +746,9 @@ create_text (GtkTextBuffer **buffer,
|
||||
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
GTK_SHADOW_IN);
|
||||
|
||||
text_view = gtk_text_view_new ();
|
||||
*view = text_view = gtk_text_view_new ();
|
||||
g_object_set (text_view, "margin", 20, NULL);
|
||||
|
||||
*buffer = gtk_text_buffer_new (NULL);
|
||||
gtk_text_view_set_buffer (GTK_TEXT_VIEW (text_view), *buffer);
|
||||
gtk_text_view_set_editable (GTK_TEXT_VIEW (text_view), FALSE);
|
||||
gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (text_view), FALSE);
|
||||
|
||||
@@ -899,43 +930,13 @@ main (int argc, char **argv)
|
||||
gtk_box_pack_start (GTK_BOX (hbox), notebook, TRUE, TRUE, 0);
|
||||
|
||||
gtk_notebook_append_page (GTK_NOTEBOOK (notebook),
|
||||
create_text (&info_buffer, FALSE),
|
||||
create_text (&info_view, FALSE),
|
||||
gtk_label_new_with_mnemonic ("_Info"));
|
||||
|
||||
gtk_text_buffer_create_tag (info_buffer, "title",
|
||||
"font", "Sans 18",
|
||||
"pixels-below-lines", 10,
|
||||
NULL);
|
||||
g_object_unref (info_buffer);
|
||||
|
||||
gtk_notebook_append_page (GTK_NOTEBOOK (notebook),
|
||||
create_text (&source_buffer, TRUE),
|
||||
create_text (&source_view, TRUE),
|
||||
gtk_label_new_with_mnemonic ("_Source"));
|
||||
|
||||
|
||||
gtk_text_buffer_create_tag (source_buffer, "comment",
|
||||
"foreground", "DodgerBlue",
|
||||
NULL);
|
||||
gtk_text_buffer_create_tag (source_buffer, "type",
|
||||
"foreground", "ForestGreen",
|
||||
NULL);
|
||||
gtk_text_buffer_create_tag (source_buffer, "string",
|
||||
"foreground", "RosyBrown",
|
||||
"weight", PANGO_WEIGHT_BOLD,
|
||||
NULL);
|
||||
gtk_text_buffer_create_tag (source_buffer, "control",
|
||||
"foreground", "purple",
|
||||
NULL);
|
||||
gtk_text_buffer_create_tag (source_buffer, "preprocessor",
|
||||
"style", PANGO_STYLE_OBLIQUE,
|
||||
"foreground", "burlywood4",
|
||||
NULL);
|
||||
gtk_text_buffer_create_tag (source_buffer, "function",
|
||||
"weight", PANGO_WEIGHT_BOLD,
|
||||
"foreground", "DarkGoldenrod4",
|
||||
NULL);
|
||||
g_object_unref (source_buffer);
|
||||
|
||||
gtk_window_set_default_size (GTK_WINDOW (window), 600, 400);
|
||||
gtk_widget_show_all (window);
|
||||
|
||||
|
||||
+14
-22
@@ -16,8 +16,6 @@
|
||||
#include <gtk/gtk.h>
|
||||
#include <math.h>
|
||||
|
||||
#define FRAME_DELAY 50
|
||||
|
||||
#define BACKGROUND_NAME "/pixbufs/background.jpg"
|
||||
|
||||
static const char *image_names[] = {
|
||||
@@ -88,14 +86,17 @@ draw_cb (GtkWidget *widget,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
#define CYCLE_LEN 60
|
||||
#define CYCLE_TIME 3000000 /* 3 seconds */
|
||||
|
||||
static int frame_num;
|
||||
static gint64 start_time;
|
||||
|
||||
/* Timeout handler to regenerate the frame */
|
||||
static gint
|
||||
timeout (gpointer data)
|
||||
/* Handler to regenerate the frame */
|
||||
static gboolean
|
||||
on_tick (GtkWidget *widget,
|
||||
GdkFrameClock *frame_clock,
|
||||
gpointer data)
|
||||
{
|
||||
gint64 current_time;
|
||||
double f;
|
||||
int i;
|
||||
double xmid, ymid;
|
||||
@@ -104,7 +105,11 @@ timeout (gpointer data)
|
||||
gdk_pixbuf_copy_area (background, 0, 0, back_width, back_height,
|
||||
frame, 0, 0);
|
||||
|
||||
f = (double) (frame_num % CYCLE_LEN) / CYCLE_LEN;
|
||||
if (start_time == 0)
|
||||
start_time = gdk_frame_clock_get_frame_time (frame_clock);
|
||||
|
||||
current_time = gdk_frame_clock_get_frame_time (frame_clock);
|
||||
f = ((current_time - start_time) % CYCLE_TIME) / (double)CYCLE_TIME;
|
||||
|
||||
xmid = back_width / 2.0;
|
||||
ymid = back_height / 2.0;
|
||||
@@ -159,20 +164,9 @@ timeout (gpointer data)
|
||||
|
||||
gtk_widget_queue_draw (da);
|
||||
|
||||
frame_num++;
|
||||
return G_SOURCE_CONTINUE;
|
||||
}
|
||||
|
||||
static guint timeout_id;
|
||||
|
||||
static void
|
||||
cleanup_callback (GObject *object,
|
||||
gpointer data)
|
||||
{
|
||||
g_source_remove (timeout_id);
|
||||
timeout_id = 0;
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
do_pixbufs (GtkWidget *do_widget)
|
||||
{
|
||||
@@ -188,8 +182,6 @@ do_pixbufs (GtkWidget *do_widget)
|
||||
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (cleanup_callback), NULL);
|
||||
|
||||
|
||||
error = NULL;
|
||||
@@ -224,7 +216,7 @@ do_pixbufs (GtkWidget *do_widget)
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (window), da);
|
||||
|
||||
timeout_id = g_timeout_add (FRAME_DELAY, timeout, NULL);
|
||||
gtk_widget_add_tick_callback (da, on_tick, NULL, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -25,8 +25,6 @@
|
||||
|
||||
|
||||
|
||||
#define FRAME_DELAY 50
|
||||
|
||||
#define BACKGROUND_NAME "background.jpg"
|
||||
|
||||
static const char *image_names[] = {
|
||||
@@ -93,14 +91,17 @@ draw_cb (GtkWidget *widget, cairo_t *cr, gpointer data)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
#define CYCLE_LEN 60
|
||||
#define CYCLE_TIME 3000000 /* 3 seconds */
|
||||
|
||||
static int frame_num;
|
||||
static gint64 start_time;
|
||||
|
||||
/* Timeout handler to regenerate the frame */
|
||||
static gint
|
||||
timeout (gpointer data)
|
||||
/* Handler to regenerate the frame */
|
||||
static gboolean
|
||||
on_tick (GtkWidget *widget,
|
||||
GdkFrameClock *frame_clock,
|
||||
gpointer data)
|
||||
{
|
||||
gint64 current_time;
|
||||
double f;
|
||||
int i;
|
||||
double xmid, ymid;
|
||||
@@ -109,7 +110,11 @@ timeout (gpointer data)
|
||||
gdk_pixbuf_copy_area (background, 0, 0, back_width, back_height,
|
||||
frame, 0, 0);
|
||||
|
||||
f = (double) (frame_num % CYCLE_LEN) / CYCLE_LEN;
|
||||
if (start_time == 0)
|
||||
start_time = gdk_frame_clock_get_frame_time (frame_clock);
|
||||
|
||||
current_time = gdk_frame_clock_get_frame_time (frame_clock);
|
||||
f = ((current_time - start_time) % CYCLE_TIME) / (double)CYCLE_TIME;
|
||||
|
||||
xmid = back_width / 2.0;
|
||||
ymid = back_height / 2.0;
|
||||
@@ -163,19 +168,13 @@ timeout (gpointer data)
|
||||
|
||||
gtk_widget_queue_draw (da);
|
||||
|
||||
frame_num++;
|
||||
return TRUE;
|
||||
return G_SOURCE_CONTINUE;
|
||||
}
|
||||
|
||||
static guint timeout_id;
|
||||
|
||||
/* Destroy handler for the window */
|
||||
static void
|
||||
destroy_cb (GObject *object, gpointer data)
|
||||
{
|
||||
g_source_remove (timeout_id);
|
||||
timeout_id = 0;
|
||||
|
||||
gtk_main_quit ();
|
||||
}
|
||||
|
||||
@@ -208,7 +207,7 @@ main (int argc, char **argv)
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (window), da);
|
||||
|
||||
timeout_id = gdk_threads_add_timeout (FRAME_DELAY, timeout, NULL);
|
||||
gtk_widget_add_tick_callback (da, on_tick, NULL, NULL);
|
||||
|
||||
gtk_widget_show_all (window);
|
||||
gtk_main ();
|
||||
|
||||
@@ -31,6 +31,8 @@
|
||||
<xi:include href="xml/visuals.xml" />
|
||||
<xi:include href="xml/cursors.xml" />
|
||||
<xi:include href="xml/windows.xml" />
|
||||
<xi:include href="xml/gdkframeclock.xml" />
|
||||
<xi:include href="xml/gdkframetimings.xml" />
|
||||
<xi:include href="xml/events.xml" />
|
||||
<xi:include href="xml/event_structs.xml" />
|
||||
<xi:include href="xml/keys.xml" />
|
||||
@@ -69,6 +71,10 @@
|
||||
<title>Index of new symbols in 3.6</title>
|
||||
<xi:include href="xml/api-index-3.6.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
<index id="api-index-3-8" role="3.8">
|
||||
<title>Index of new symbols in 3.8</title>
|
||||
<xi:include href="xml/api-index-3.8.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
|
||||
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
|
||||
|
||||
|
||||
@@ -404,6 +404,7 @@ gdk_window_process_updates
|
||||
gdk_window_set_debug_updates
|
||||
gdk_window_enable_synchronized_configure
|
||||
gdk_window_configure_finished
|
||||
gdk_window_get_frame_clock
|
||||
|
||||
<SUBSECTION>
|
||||
gdk_window_set_user_data
|
||||
@@ -988,6 +989,7 @@ gdk_x11_window_set_hide_titlebar_when_maximized
|
||||
gdk_x11_window_set_theme_variant
|
||||
gdk_x11_window_set_user_time
|
||||
gdk_x11_window_move_to_current_desktop
|
||||
gdk_x11_window_set_utf8_property
|
||||
gdk_x11_get_default_root_xwindow
|
||||
gdk_x11_get_default_screen
|
||||
gdk_x11_get_default_xdisplay
|
||||
@@ -1154,3 +1156,38 @@ gdk_test_render_sync
|
||||
gdk_test_simulate_button
|
||||
gdk_test_simulate_key
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<TITLE>GdkFrameClock</TITLE>
|
||||
<FILE>gdkframeclock</FILE>
|
||||
GdkFrameClock
|
||||
gdk_frame_clock_get_frame_time
|
||||
GdkFrameClockPhase
|
||||
gdk_frame_clock_request_phase
|
||||
gdk_frame_clock_begin_updating
|
||||
gdk_frame_clock_end_updating
|
||||
gdk_frame_clock_get_frame_counter
|
||||
gdk_frame_clock_get_history_start
|
||||
gdk_frame_clock_get_timings
|
||||
gdk_frame_clock_get_current_timings
|
||||
gdk_frame_clock_get_refresh_info
|
||||
<SUBSECTION Private>
|
||||
GdkFrameClockPrivate
|
||||
gdk_frame_clock_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<TITLE>GdkFrameTimings</TITLE>
|
||||
<FILE>gdkframetimings</FILE>
|
||||
GdkFrameTimings
|
||||
gdk_frame_timings_ref
|
||||
gdk_frame_timings_unref
|
||||
gdk_frame_timings_get_frame_counter
|
||||
gdk_frame_timings_get_complete
|
||||
gdk_frame_timings_get_frame_time
|
||||
gdk_frame_timings_get_presentation_time
|
||||
gdk_frame_timings_get_refresh_interval
|
||||
gdk_frame_timings_get_predicted_presentation_time
|
||||
<SUBSECTION Private>
|
||||
gdk_frame_get_type
|
||||
</SECTION>
|
||||
|
||||
@@ -4742,6 +4742,7 @@ GtkCellRendererState
|
||||
GtkCellRendererMode
|
||||
GtkCellRenderer
|
||||
GtkCellRendererClass
|
||||
gtk_cell_renderer_class_set_accessible_type
|
||||
gtk_cell_renderer_get_aligned_area
|
||||
gtk_cell_renderer_get_size
|
||||
gtk_cell_renderer_render
|
||||
@@ -5151,6 +5152,10 @@ gtk_widget_draw
|
||||
gtk_widget_queue_draw
|
||||
gtk_widget_queue_resize
|
||||
gtk_widget_queue_resize_no_redraw
|
||||
gtk_widget_get_frame_clock
|
||||
GtkTickCallback
|
||||
gtk_widget_add_tick_callback
|
||||
gtk_widget_remove_tick_callback
|
||||
gtk_widget_size_request
|
||||
gtk_widget_get_child_requisition
|
||||
gtk_widget_size_allocate
|
||||
@@ -5809,6 +5814,7 @@ gtk_style_context_get_parent
|
||||
gtk_style_context_get_path
|
||||
gtk_style_context_get_property
|
||||
gtk_style_context_get_screen
|
||||
gtk_style_context_get_frame_clock
|
||||
gtk_style_context_get_state
|
||||
gtk_style_context_get_style
|
||||
gtk_style_context_get_style_property
|
||||
@@ -5850,6 +5856,7 @@ gtk_style_context_remove_region
|
||||
gtk_style_context_has_region
|
||||
gtk_style_context_list_regions
|
||||
gtk_style_context_set_screen
|
||||
gtk_style_context_set_frame_clock
|
||||
gtk_style_context_set_state
|
||||
|
||||
<SUBSECTION>
|
||||
@@ -6493,8 +6500,6 @@ gtk_icon_info_load_symbolic
|
||||
gtk_icon_info_load_symbolic_async
|
||||
gtk_icon_info_load_symbolic_finish
|
||||
gtk_icon_info_load_symbolic_for_style
|
||||
gtk_icon_info_load_symbolic_for_style_async
|
||||
gtk_icon_info_load_symbolic_for_style_finish
|
||||
gtk_icon_info_load_symbolic_for_context
|
||||
gtk_icon_info_load_symbolic_for_context_async
|
||||
gtk_icon_info_load_symbolic_for_context_finish
|
||||
|
||||
@@ -236,7 +236,6 @@ x11_introspection_files = \
|
||||
x11/gdkxftdefaults.c \
|
||||
x11/gdkxid.c \
|
||||
x11/xsettings-client.c \
|
||||
x11/xsettings-common.c \
|
||||
x11/gdkx.h \
|
||||
x11/gdkx11cursor.h \
|
||||
x11/gdkx11display.h \
|
||||
|
||||
@@ -157,7 +157,7 @@ gdk_broadway_device_query_state (GdkDevice *device,
|
||||
GdkBroadwayDisplay *broadway_display;
|
||||
GdkScreen *screen;
|
||||
gint32 device_root_x, device_root_y;
|
||||
gint32 mouse_toplevel_id;
|
||||
guint32 mouse_toplevel_id;
|
||||
GdkWindow *mouse_toplevel;
|
||||
guint32 mask32;
|
||||
|
||||
@@ -181,7 +181,7 @@ gdk_broadway_device_query_state (GdkDevice *device,
|
||||
&device_root_x,
|
||||
&device_root_y,
|
||||
&mask32);
|
||||
mouse_toplevel = g_hash_table_lookup (broadway_display->id_ht, GINT_TO_POINTER (mouse_toplevel_id));
|
||||
mouse_toplevel = g_hash_table_lookup (broadway_display->id_ht, GUINT_TO_POINTER (mouse_toplevel_id));
|
||||
|
||||
if (root_x)
|
||||
*root_x = device_root_x;
|
||||
|
||||
@@ -61,7 +61,11 @@ gdk_event_source_prepare (GSource *source,
|
||||
gdk_threads_enter ();
|
||||
|
||||
*timeout = -1;
|
||||
retval = (_gdk_event_queue_find_first (display) != NULL);
|
||||
|
||||
if (display->event_pause_count > 0)
|
||||
retval = FALSE;
|
||||
else
|
||||
retval = (_gdk_event_queue_find_first (display) != NULL);
|
||||
|
||||
gdk_threads_leave ();
|
||||
|
||||
@@ -76,7 +80,9 @@ gdk_event_source_check (GSource *source)
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
if (event_source->event_poll_fd.revents & G_IO_IN)
|
||||
if (event_source->display->event_pause_count > 0)
|
||||
retval = FALSE;
|
||||
else if (event_source->event_poll_fd.revents & G_IO_IN)
|
||||
retval = (_gdk_event_queue_find_first (event_source->display) != NULL);
|
||||
else
|
||||
retval = FALSE;
|
||||
|
||||
@@ -1252,16 +1252,12 @@ gdk_broadway_window_begin_resize_drag (GdkWindow *window,
|
||||
gint root_y,
|
||||
guint32 timestamp)
|
||||
{
|
||||
GdkBroadwayDisplay *broadway_display;
|
||||
MoveResizeData *mv_resize;
|
||||
|
||||
if (GDK_WINDOW_DESTROYED (window) ||
|
||||
!WINDOW_IS_TOPLEVEL_OR_FOREIGN (window))
|
||||
return;
|
||||
|
||||
/* We need a connection to be able to get mouse events, if not, punt */
|
||||
broadway_display = GDK_BROADWAY_DISPLAY (gdk_window_get_display (window));
|
||||
|
||||
mv_resize = get_move_resize_data (GDK_WINDOW_DISPLAY (window), TRUE);
|
||||
|
||||
mv_resize->is_resize = TRUE;
|
||||
|
||||
@@ -139,7 +139,8 @@ static const GDebugKey gdk_debug_keys[] = {
|
||||
{"xinerama", GDK_DEBUG_XINERAMA},
|
||||
{"draw", GDK_DEBUG_DRAW},
|
||||
{"eventloop", GDK_DEBUG_EVENTLOOP},
|
||||
{"frames", GDK_DEBUG_FRAMES}
|
||||
{"frames", GDK_DEBUG_FRAMES},
|
||||
{"settings", GDK_DEBUG_SETTINGS}
|
||||
};
|
||||
|
||||
static gboolean
|
||||
|
||||
@@ -40,6 +40,8 @@
|
||||
#include <gdk/gdkdnd.h>
|
||||
#include <gdk/gdkenumtypes.h>
|
||||
#include <gdk/gdkevents.h>
|
||||
#include <gdk/gdkframeclock.h>
|
||||
#include <gdk/gdkframetimings.h>
|
||||
#include <gdk/gdkkeys.h>
|
||||
#include <gdk/gdkkeysyms.h>
|
||||
#include <gdk/gdkmain.h>
|
||||
|
||||
+12
-11
@@ -30,7 +30,7 @@
|
||||
#include "gdkinternals.h"
|
||||
|
||||
/**
|
||||
* SECTION:frameclock
|
||||
* SECTION:gdkframeclock
|
||||
* @Short_description: Frame clock syncs painting to a window or display
|
||||
* @Title: Frame clock
|
||||
*
|
||||
@@ -52,10 +52,10 @@
|
||||
* sense for the synchronization being implemented, the clock will
|
||||
* process a frame and emit signals for each phase that has been
|
||||
* requested. (See the signals of the #GdkFrameClock class for
|
||||
* documentation of the phases. GDK_FRAME_CLOCK_PHASE_UPDATE and the
|
||||
* ::update signal are most interesting for application writers, and
|
||||
* are used to update the animations, using the frame time given by
|
||||
* gdk_frame_clock_get_frame_time().
|
||||
* documentation of the phases. %GDK_FRAME_CLOCK_PHASE_UPDATE and the
|
||||
* #GdkFrameClock::update signal are most interesting for application
|
||||
* writers, and are used to update the animations, using the frame time
|
||||
* given by gdk_frame_clock_get_frame_time().
|
||||
*
|
||||
* The frame time is reported in microseconds and generally in the same
|
||||
* timescale as g_get_monotonic_time(), however, it is not the same
|
||||
@@ -65,8 +65,8 @@
|
||||
* are called at a "similar" time get the same value. This means that
|
||||
* if different animations are timed by looking at the difference in
|
||||
* time between an initial value from gdk_frame_clock_get_frame_time()
|
||||
* and the value inside the ::update signal of the clock, they will
|
||||
* stay exactly synchronized.
|
||||
* and the value inside the #GdkFrameClock::update signal of the clock,
|
||||
* they will stay exactly synchronized.
|
||||
*/
|
||||
|
||||
G_DEFINE_ABSTRACT_TYPE (GdkFrameClock, gdk_frame_clock, G_TYPE_OBJECT)
|
||||
@@ -174,7 +174,7 @@ gdk_frame_clock_class_init (GdkFrameClockClass *klass)
|
||||
* This signal is emitted as the second step of toolkit and
|
||||
* application processing of the frame. Any work to update
|
||||
* sizes and positions of application elements should be
|
||||
* performed. GTK normally handles this internally.
|
||||
* performed. GTK+ normally handles this internally.
|
||||
*/
|
||||
signals[LAYOUT] =
|
||||
g_signal_new (g_intern_static_string ("layout"),
|
||||
@@ -192,8 +192,8 @@ gdk_frame_clock_class_init (GdkFrameClockClass *klass)
|
||||
* This signal is emitted as the third step of toolkit and
|
||||
* application processing of the frame. The frame is
|
||||
* repainted. GDK normally handles this internally and
|
||||
* produce expose events, which are turned into GTK
|
||||
* GtkWidget::draw signals.
|
||||
* produces expose events, which are turned into GTK+
|
||||
* #GtkWidget::draw signals.
|
||||
*/
|
||||
signals[PAINT] =
|
||||
g_signal_new (g_intern_static_string ("paint"),
|
||||
@@ -280,11 +280,12 @@ gdk_frame_clock_get_frame_time (GdkFrameClock *frame_clock)
|
||||
/**
|
||||
* gdk_frame_clock_request_phase:
|
||||
* @frame_clock: a #GdkFrameClock
|
||||
* @phase: the phase that is requested
|
||||
*
|
||||
* Asks the frame clock to run a particular phase. The signal
|
||||
* corresponding the requested phase will be emitted the next
|
||||
* time the frame clock processes. Multiple calls to
|
||||
* gdk_frame_clock_request_phase() will be combined togethe
|
||||
* gdk_frame_clock_request_phase() will be combined together
|
||||
* and only one frame processed. If you are displaying animated
|
||||
* content and want to continually request the
|
||||
* %GDK_FRAME_CLOCK_PHASE_UPDATE phase for a period of time,
|
||||
|
||||
+1
-1
@@ -58,7 +58,7 @@ typedef struct _GdkFrameClockClass GdkFrameClockClass;
|
||||
* @GDK_FRAME_CLOCK_PHASE_AFTER_PAINT: corresponds to GdkFrameClock::after-paint. Should not be handled by applications.
|
||||
*
|
||||
* #GdkFrameClockPhase is used to represent the different paint clock
|
||||
* phases that can be requested. The element of the enumeration
|
||||
* phases that can be requested. The elements of the enumeration
|
||||
* correspond to the signals of #GdkPaintClock.
|
||||
*
|
||||
* Since: 3.8
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
#define FRAME_INTERVAL 16667 // microseconds
|
||||
#define FRAME_INTERVAL 16667 /* microseconds */
|
||||
|
||||
struct _GdkFrameClockIdlePrivate
|
||||
{
|
||||
@@ -247,7 +247,8 @@ maybe_start_idle (GdkFrameClockIdle *clock_idle)
|
||||
(GDestroyNotify) g_object_unref);
|
||||
}
|
||||
|
||||
if (priv->paint_idle_id == 0 && RUN_PAINT_IDLE (priv))
|
||||
if (!priv->in_paint_idle &&
|
||||
priv->paint_idle_id == 0 && RUN_PAINT_IDLE (priv))
|
||||
{
|
||||
priv->paint_idle_id = gdk_threads_add_timeout_full (GDK_PRIORITY_REDRAW,
|
||||
min_interval,
|
||||
@@ -364,7 +365,8 @@ gdk_frame_clock_paint_idle (void *data)
|
||||
/* We always emit ::before-paint and ::after-paint if
|
||||
* any of the intermediate phases are requested and
|
||||
* they don't get repeated if you freeze/thaw while
|
||||
* in them. */
|
||||
* in them.
|
||||
*/
|
||||
priv->requested &= ~GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT;
|
||||
g_signal_emit_by_name (G_OBJECT (clock), "before-paint");
|
||||
priv->phase = GDK_FRAME_CLOCK_PHASE_UPDATE;
|
||||
@@ -439,7 +441,7 @@ gdk_frame_clock_paint_idle (void *data)
|
||||
#ifdef G_ENABLE_DEBUG
|
||||
if ((_gdk_debug_flags & GDK_DEBUG_FRAMES) != 0)
|
||||
{
|
||||
if (timings->complete)
|
||||
if (timings && timings->complete)
|
||||
_gdk_frame_clock_debug_print_timings (clock, timings);
|
||||
}
|
||||
#endif /* G_ENABLE_DEBUG */
|
||||
@@ -546,7 +548,8 @@ gdk_frame_clock_idle_thaw (GdkFrameClock *clock)
|
||||
maybe_start_idle (clock_idle);
|
||||
/* If nothing is requested so we didn't start an idle, we need
|
||||
* to skip to the end of the state chain, since the idle won't
|
||||
* run and do it for us. */
|
||||
* run and do it for us.
|
||||
*/
|
||||
if (priv->paint_idle_id == 0)
|
||||
priv->phase = GDK_FRAME_CLOCK_PHASE_NONE;
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#include "gdkframeclockprivate.h"
|
||||
|
||||
/**
|
||||
* SECTION:frametimings
|
||||
* SECTION:gdkframetimings
|
||||
* @Short_description: Object holding timing information for a single frame
|
||||
* @Title: Frame timings
|
||||
*
|
||||
@@ -106,7 +106,7 @@ gdk_frame_timings_get_frame_counter (GdkFrameTimings *timings)
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_frame_timings_complete:
|
||||
* gdk_frame_timings_get_complete:
|
||||
* @timings: a #GdkFrameTimings
|
||||
*
|
||||
* The timing information in a #GdkFrameTimings is filled in
|
||||
|
||||
+2
-1
@@ -83,7 +83,8 @@ typedef enum {
|
||||
GDK_DEBUG_XINERAMA = 1 << 8,
|
||||
GDK_DEBUG_DRAW = 1 << 9,
|
||||
GDK_DEBUG_EVENTLOOP = 1 << 10,
|
||||
GDK_DEBUG_FRAMES = 1 << 11
|
||||
GDK_DEBUG_FRAMES = 1 << 11,
|
||||
GDK_DEBUG_SETTINGS = 1 << 12
|
||||
} GdkDebugFlag;
|
||||
|
||||
typedef enum {
|
||||
|
||||
+6
-1
@@ -271,9 +271,10 @@ print_region (cairo_region_t *region)
|
||||
}
|
||||
else
|
||||
{
|
||||
int i;
|
||||
cairo_region_get_extents (region, &r);
|
||||
g_string_append_printf (s, "extent: %dx%d @%d,%d, details: ", r.width, r.height, r.x, r.y);
|
||||
for (int i = 0; i < num; i++)
|
||||
for (i = 0; i < num; i++)
|
||||
{
|
||||
g_string_append_printf (s, "[%dx%d @%d,%d]", r.width, r.height, r.x, r.y);
|
||||
if (i != num -1)
|
||||
@@ -9991,6 +9992,10 @@ gdk_window_print (GdkWindow *window,
|
||||
g_print (" abs[%d,%d]",
|
||||
window->abs_x, window->abs_y);
|
||||
|
||||
if (window->alpha != 255)
|
||||
g_print (" alpha[%d]",
|
||||
window->alpha);
|
||||
|
||||
s = print_region (window->clip_region);
|
||||
g_print (" clipbox[%s]", s);
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#include <unistd.h>
|
||||
|
||||
#include "gdkprivate-quartz.h"
|
||||
#include <gdk/gdkdisplayprivate.h>
|
||||
|
||||
/*
|
||||
* This file implementations integration between the GLib main loop and
|
||||
@@ -620,8 +621,11 @@ gdk_event_prepare (GSource *source,
|
||||
|
||||
*timeout = -1;
|
||||
|
||||
retval = (_gdk_event_queue_find_first (_gdk_display) != NULL ||
|
||||
_gdk_quartz_event_loop_check_pending ());
|
||||
if (_gdk_display->event_pause_count > 0)
|
||||
retval = FALSE;
|
||||
else
|
||||
retval = (_gdk_event_queue_find_first (_gdk_display) != NULL ||
|
||||
_gdk_quartz_event_loop_check_pending ());
|
||||
|
||||
gdk_threads_leave ();
|
||||
|
||||
@@ -635,8 +639,11 @@ gdk_event_check (GSource *source)
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
retval = (_gdk_event_queue_find_first (_gdk_display) != NULL ||
|
||||
_gdk_quartz_event_loop_check_pending ());
|
||||
if (_gdk_display->event_pause_count > 0)
|
||||
retval = FALSE;
|
||||
else
|
||||
retval = (_gdk_event_queue_find_first (_gdk_display) != NULL ||
|
||||
_gdk_quartz_event_loop_check_pending ());
|
||||
|
||||
gdk_threads_leave ();
|
||||
|
||||
|
||||
@@ -37,6 +37,9 @@ gdk_event_source_prepare(GSource *base, gint *timeout)
|
||||
|
||||
*timeout = -1;
|
||||
|
||||
if (source->display->event_pause_count > 0)
|
||||
return FALSE;
|
||||
|
||||
/* We have to add/remove the GPollFD if we want to update our
|
||||
* poll event mask dynamically. Instead, let's just flush all
|
||||
* write on idle instead, which is what this amounts to. */
|
||||
@@ -57,6 +60,9 @@ gdk_event_source_check(GSource *base)
|
||||
if (source->pfd.revents & (G_IO_ERR | G_IO_HUP))
|
||||
g_error ("Lost connection to wayland compositor");
|
||||
|
||||
if (source->display->event_pause_count > 0)
|
||||
return FALSE;
|
||||
|
||||
return _gdk_event_queue_find_first (source->display) != NULL ||
|
||||
source->pfd.revents;
|
||||
}
|
||||
|
||||
@@ -1319,6 +1319,9 @@ gdk_wayland_window_fullscreen (GdkWindow *window)
|
||||
WL_SHELL_SURFACE_FULLSCREEN_METHOD_DEFAULT,
|
||||
0,
|
||||
NULL);
|
||||
|
||||
gdk_synthesize_window_state (window, 0, GDK_WINDOW_STATE_FULLSCREEN);
|
||||
|
||||
impl->fullscreen = TRUE;
|
||||
}
|
||||
|
||||
@@ -1334,8 +1337,11 @@ gdk_wayland_window_unfullscreen (GdkWindow *window)
|
||||
return;
|
||||
|
||||
wl_shell_surface_set_toplevel (impl->shell_surface);
|
||||
gdk_synthesize_window_state (window, GDK_WINDOW_STATE_FULLSCREEN, 0);
|
||||
gdk_wayland_window_configure (window, impl->saved_width, impl->saved_height,
|
||||
0);
|
||||
|
||||
|
||||
impl->fullscreen = FALSE;
|
||||
}
|
||||
|
||||
|
||||
+13
-12
@@ -3330,9 +3330,12 @@ gdk_event_prepare (GSource *source,
|
||||
|
||||
*timeout = -1;
|
||||
|
||||
retval = (_gdk_event_queue_find_first (_gdk_display) != NULL ||
|
||||
(modal_win32_dialog == NULL &&
|
||||
GetQueueStatus (QS_ALLINPUT) != 0));
|
||||
if (display->event_pause_count > 0)
|
||||
retval = FALSE;
|
||||
else
|
||||
retval = (_gdk_event_queue_find_first (_gdk_display) != NULL ||
|
||||
(modal_win32_dialog == NULL &&
|
||||
GetQueueStatus (QS_ALLINPUT) != 0));
|
||||
|
||||
gdk_threads_leave ();
|
||||
|
||||
@@ -3346,16 +3349,14 @@ gdk_event_check (GSource *source)
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
if (event_poll_fd.revents & G_IO_IN)
|
||||
{
|
||||
retval = (_gdk_event_queue_find_first (_gdk_display) != NULL ||
|
||||
(modal_win32_dialog == NULL &&
|
||||
GetQueueStatus (QS_ALLINPUT) != 0));
|
||||
}
|
||||
if (display->event_pause_count > 0)
|
||||
retval = FALSE;
|
||||
else if (event_poll_fd.revents & G_IO_IN)
|
||||
retval = (_gdk_event_queue_find_first (_gdk_display) != NULL ||
|
||||
(modal_win32_dialog == NULL &&
|
||||
GetQueueStatus (QS_ALLINPUT) != 0));
|
||||
else
|
||||
{
|
||||
retval = FALSE;
|
||||
}
|
||||
retval = FALSE;
|
||||
|
||||
gdk_threads_leave ();
|
||||
|
||||
|
||||
@@ -147,7 +147,7 @@ _gdk_win32_window_change_property (GdkWindow *window,
|
||||
{
|
||||
HGLOBAL hdata;
|
||||
gint i, size;
|
||||
guchar *ucptr, *buf = NULL;
|
||||
guchar *ucptr;
|
||||
wchar_t *wcptr, *p;
|
||||
glong wclen;
|
||||
|
||||
@@ -206,7 +206,7 @@ _gdk_win32_window_change_property (GdkWindow *window,
|
||||
WIN32_API_FAILED ("GlobalAlloc");
|
||||
if (!CloseClipboard ())
|
||||
WIN32_API_FAILED ("CloseClipboard");
|
||||
g_free (buf);
|
||||
g_free (wcptr);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
+1
-3
@@ -53,9 +53,7 @@ libgdk_x11_la_SOURCES = \
|
||||
gdkx.h \
|
||||
gdkprivate-x11.h \
|
||||
xsettings-client.h \
|
||||
xsettings-client.c \
|
||||
xsettings-common.h \
|
||||
xsettings-common.c
|
||||
xsettings-client.c
|
||||
|
||||
libgdkinclude_HEADERS = \
|
||||
gdkx.h
|
||||
|
||||
@@ -1394,7 +1394,7 @@ _gdk_x11_display_open (const gchar *display_name)
|
||||
* structures in places
|
||||
*/
|
||||
for (i = 0; i < ScreenCount (display_x11->xdisplay); i++)
|
||||
_gdk_x11_screen_init_events (display_x11->screens[i]);
|
||||
_gdk_x11_xsettings_init (GDK_X11_SCREEN (display_x11->screens[i]));
|
||||
|
||||
/*set the default screen */
|
||||
display_x11->default_screen = display_x11->screens[DefaultScreen (display_x11->xdisplay)];
|
||||
|
||||
@@ -297,6 +297,10 @@ void _gdk_x11_precache_atoms (GdkDisplay *display,
|
||||
const gchar * const *atom_names,
|
||||
gint n_atoms);
|
||||
|
||||
Atom _gdk_x11_get_xatom_for_display_printf (GdkDisplay *display,
|
||||
const gchar *format,
|
||||
...) G_GNUC_PRINTF (2, 3);
|
||||
|
||||
GdkFilterReturn
|
||||
_gdk_x11_dnd_filter (GdkXEvent *xev,
|
||||
GdkEvent *event,
|
||||
@@ -304,7 +308,6 @@ _gdk_x11_dnd_filter (GdkXEvent *xev,
|
||||
|
||||
void _gdk_x11_screen_init_root_window (GdkScreen *screen);
|
||||
void _gdk_x11_screen_init_visuals (GdkScreen *screen);
|
||||
void _gdk_x11_screen_init_events (GdkScreen *screen);
|
||||
|
||||
void _gdk_x11_cursor_update_theme (GdkCursor *cursor);
|
||||
void _gdk_x11_cursor_display_finalize (GdkDisplay *display);
|
||||
|
||||
@@ -461,6 +461,26 @@ gdk_x11_get_xatom_by_name_for_display (GdkDisplay *display,
|
||||
gdk_atom_intern (atom_name, FALSE));
|
||||
}
|
||||
|
||||
Atom
|
||||
_gdk_x11_get_xatom_for_display_printf (GdkDisplay *display,
|
||||
const gchar *format,
|
||||
...)
|
||||
{
|
||||
va_list args;
|
||||
char *atom_name;
|
||||
Atom atom;
|
||||
|
||||
va_start (args, format);
|
||||
atom_name = g_strdup_vprintf (format, args);
|
||||
va_end (args);
|
||||
|
||||
atom = gdk_x11_get_xatom_by_name_for_display (display, atom_name);
|
||||
|
||||
g_free (atom_name);
|
||||
|
||||
return atom;
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_x11_get_xatom_by_name:
|
||||
* @atom_name: a string
|
||||
|
||||
+28
-241
@@ -24,6 +24,7 @@
|
||||
#include "gdkscreen-x11.h"
|
||||
#include "gdkdisplay-x11.h"
|
||||
#include "gdkprivate-x11.h"
|
||||
#include "xsettings-client.h"
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
@@ -47,8 +48,6 @@
|
||||
#include <X11/extensions/Xfixes.h>
|
||||
#endif
|
||||
|
||||
#include "gdksettings.c"
|
||||
|
||||
static void gdk_x11_screen_dispose (GObject *object);
|
||||
static void gdk_x11_screen_finalize (GObject *object);
|
||||
static void init_randr_support (GdkScreen *screen);
|
||||
@@ -130,18 +129,6 @@ gdk_x11_screen_get_root_window (GdkScreen *screen)
|
||||
return GDK_X11_SCREEN (screen)->root_window;
|
||||
}
|
||||
|
||||
static void
|
||||
_gdk_x11_screen_events_uninit (GdkScreen *screen)
|
||||
{
|
||||
GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen);
|
||||
|
||||
if (x11_screen->xsettings_client)
|
||||
{
|
||||
xsettings_client_destroy (x11_screen->xsettings_client);
|
||||
x11_screen->xsettings_client = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_x11_screen_dispose (GObject *object)
|
||||
{
|
||||
@@ -157,7 +144,7 @@ gdk_x11_screen_dispose (GObject *object)
|
||||
}
|
||||
}
|
||||
|
||||
_gdk_x11_screen_events_uninit (GDK_SCREEN (object));
|
||||
_gdk_x11_xsettings_finish (x11_screen);
|
||||
|
||||
if (x11_screen->root_window)
|
||||
_gdk_window_destroy (x11_screen->root_window, TRUE);
|
||||
@@ -298,7 +285,7 @@ get_current_desktop (GdkScreen *screen)
|
||||
&data_return);
|
||||
|
||||
if (type == XA_CARDINAL && format == 32 && n_items > 0)
|
||||
workspace = (int) data_return[0];
|
||||
workspace = ((long *) data_return)[0];
|
||||
|
||||
if (data_return)
|
||||
XFree (data_return);
|
||||
@@ -436,27 +423,23 @@ gdk_x11_screen_get_screen_number (GdkScreen *screen)
|
||||
return GDK_X11_SCREEN (screen)->screen_num;
|
||||
}
|
||||
|
||||
static Atom
|
||||
get_cm_atom (GdkX11Screen *x11_screen)
|
||||
{
|
||||
return _gdk_x11_get_xatom_for_display_printf (x11_screen->display, "_NET_WM_CM_S%d", x11_screen->screen_num);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
check_is_composited (GdkDisplay *display,
|
||||
GdkX11Screen *x11_screen)
|
||||
{
|
||||
Atom xselection = gdk_x11_atom_to_xatom_for_display (display, x11_screen->cm_selection_atom);
|
||||
Window xwindow;
|
||||
|
||||
xwindow = XGetSelectionOwner (GDK_DISPLAY_XDISPLAY (display), xselection);
|
||||
xwindow = XGetSelectionOwner (GDK_DISPLAY_XDISPLAY (display), get_cm_atom (x11_screen));
|
||||
|
||||
return xwindow != None;
|
||||
}
|
||||
|
||||
static GdkAtom
|
||||
make_cm_atom (int screen_number)
|
||||
{
|
||||
gchar *name = g_strdup_printf ("_NET_WM_CM_S%d", screen_number);
|
||||
GdkAtom atom = gdk_atom_intern (name, FALSE);
|
||||
g_free (name);
|
||||
return atom;
|
||||
}
|
||||
|
||||
static void
|
||||
init_monitor_geometry (GdkX11Monitor *monitor,
|
||||
int x, int y, int width, int height)
|
||||
@@ -1078,9 +1061,8 @@ _gdk_x11_screen_setup (GdkScreen *screen)
|
||||
{
|
||||
GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen);
|
||||
|
||||
x11_screen->cm_selection_atom = make_cm_atom (x11_screen->screen_num);
|
||||
gdk_display_request_selection_notification (x11_screen->display,
|
||||
x11_screen->cm_selection_atom);
|
||||
gdk_x11_xatom_to_atom_for_display (x11_screen->display, get_cm_atom (x11_screen)));
|
||||
x11_screen->is_composited = check_is_composited (x11_screen->display, x11_screen);
|
||||
}
|
||||
|
||||
@@ -1097,6 +1079,7 @@ init_randr_support (GdkScreen *screen)
|
||||
{
|
||||
GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen);
|
||||
|
||||
/* NB: This is also needed for XSettings, so don't remove. */
|
||||
XSelectInput (GDK_SCREEN_XDISPLAY (screen),
|
||||
x11_screen->xroot_window,
|
||||
StructureNotifyMask);
|
||||
@@ -1195,10 +1178,8 @@ _gdk_x11_screen_process_owner_change (GdkScreen *screen,
|
||||
#ifdef HAVE_XFIXES
|
||||
XFixesSelectionNotifyEvent *selection_event = (XFixesSelectionNotifyEvent *)event;
|
||||
GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen);
|
||||
Atom xcm_selection_atom = gdk_x11_atom_to_xatom_for_display (x11_screen->display,
|
||||
x11_screen->cm_selection_atom);
|
||||
|
||||
if (selection_event->selection == xcm_selection_atom)
|
||||
if (selection_event->selection == get_cm_atom (x11_screen))
|
||||
{
|
||||
gboolean composited = selection_event->owner != None;
|
||||
|
||||
@@ -1329,97 +1310,35 @@ gdk_x11_screen_get_window_stack (GdkScreen *screen)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
check_transform (const gchar *xsettings_name,
|
||||
GType src_type,
|
||||
GType dest_type)
|
||||
{
|
||||
if (!g_value_type_transformable (src_type, dest_type))
|
||||
{
|
||||
g_warning ("Cannot transform xsetting %s of type %s to type %s\n",
|
||||
xsettings_name,
|
||||
g_type_name (src_type),
|
||||
g_type_name (dest_type));
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gdk_x11_screen_get_setting (GdkScreen *screen,
|
||||
const gchar *name,
|
||||
GValue *value)
|
||||
{
|
||||
GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen);
|
||||
const char *xsettings_name = NULL;
|
||||
XSettingsResult result;
|
||||
XSettingsSetting *setting = NULL;
|
||||
gboolean success = FALSE;
|
||||
GValue tmp_val = G_VALUE_INIT;
|
||||
const GValue *setting;
|
||||
|
||||
xsettings_name = gdk_to_xsettings_name (name);
|
||||
if (!xsettings_name)
|
||||
if (x11_screen->xsettings == NULL)
|
||||
goto out;
|
||||
setting = g_hash_table_lookup (x11_screen->xsettings, name);
|
||||
if (setting == NULL)
|
||||
goto out;
|
||||
|
||||
result = xsettings_client_get_setting (x11_screen->xsettings_client,
|
||||
xsettings_name, &setting);
|
||||
if (result != XSETTINGS_SUCCESS)
|
||||
goto out;
|
||||
|
||||
switch (setting->type)
|
||||
if (!g_value_type_transformable (G_VALUE_TYPE (setting), G_VALUE_TYPE (value)))
|
||||
{
|
||||
case XSETTINGS_TYPE_INT:
|
||||
if (check_transform (xsettings_name, G_TYPE_INT, G_VALUE_TYPE (value)))
|
||||
{
|
||||
g_value_init (&tmp_val, G_TYPE_INT);
|
||||
g_value_set_int (&tmp_val, setting->data.v_int);
|
||||
g_value_transform (&tmp_val, value);
|
||||
|
||||
success = TRUE;
|
||||
}
|
||||
break;
|
||||
case XSETTINGS_TYPE_STRING:
|
||||
if (check_transform (xsettings_name, G_TYPE_STRING, G_VALUE_TYPE (value)))
|
||||
{
|
||||
g_value_init (&tmp_val, G_TYPE_STRING);
|
||||
g_value_set_string (&tmp_val, setting->data.v_string);
|
||||
g_value_transform (&tmp_val, value);
|
||||
|
||||
success = TRUE;
|
||||
}
|
||||
break;
|
||||
case XSETTINGS_TYPE_COLOR:
|
||||
if (!check_transform (xsettings_name, GDK_TYPE_RGBA, G_VALUE_TYPE (value)))
|
||||
{
|
||||
GdkRGBA rgba;
|
||||
|
||||
g_value_init (&tmp_val, GDK_TYPE_RGBA);
|
||||
|
||||
rgba.red = setting->data.v_color.red / 65535.0;
|
||||
rgba.green = setting->data.v_color.green / 65535.0;
|
||||
rgba.blue = setting->data.v_color.blue / 65535.0;
|
||||
rgba.alpha = setting->data.v_color.alpha / 65535.0;
|
||||
|
||||
g_value_set_boxed (&tmp_val, &rgba);
|
||||
|
||||
g_value_transform (&tmp_val, value);
|
||||
|
||||
success = TRUE;
|
||||
}
|
||||
break;
|
||||
g_warning ("Cannot transform xsetting %s of type %s to type %s\n",
|
||||
name,
|
||||
g_type_name (G_VALUE_TYPE (setting)),
|
||||
g_type_name (G_VALUE_TYPE (value)));
|
||||
goto out;
|
||||
}
|
||||
|
||||
g_value_unset (&tmp_val);
|
||||
g_value_transform (setting, value);
|
||||
|
||||
return TRUE;
|
||||
|
||||
out:
|
||||
if (setting)
|
||||
xsettings_setting_free (setting);
|
||||
|
||||
if (success)
|
||||
return TRUE;
|
||||
else
|
||||
return _gdk_x11_get_xft_setting (screen, name, value);
|
||||
return _gdk_x11_get_xft_setting (screen, name, value);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1614,138 +1533,6 @@ gdk_x11_screen_supports_net_wm_hint (GdkScreen *screen,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
refcounted_grab_server (Display *xdisplay)
|
||||
{
|
||||
GdkDisplay *display = gdk_x11_lookup_xdisplay (xdisplay);
|
||||
|
||||
gdk_x11_display_grab (display);
|
||||
}
|
||||
|
||||
static void
|
||||
refcounted_ungrab_server (Display *xdisplay)
|
||||
{
|
||||
GdkDisplay *display = gdk_x11_lookup_xdisplay (xdisplay);
|
||||
|
||||
gdk_x11_display_ungrab (display);
|
||||
}
|
||||
|
||||
static GdkFilterReturn
|
||||
gdk_xsettings_client_event_filter (GdkXEvent *xevent,
|
||||
GdkEvent *event,
|
||||
gpointer data)
|
||||
{
|
||||
GdkX11Screen *screen = data;
|
||||
|
||||
if (xsettings_client_process_event (screen->xsettings_client, (XEvent *)xevent))
|
||||
return GDK_FILTER_REMOVE;
|
||||
else
|
||||
return GDK_FILTER_CONTINUE;
|
||||
}
|
||||
|
||||
static Bool
|
||||
gdk_xsettings_watch_cb (Window window,
|
||||
Bool is_start,
|
||||
long mask,
|
||||
void *cb_data)
|
||||
{
|
||||
GdkWindow *gdkwin;
|
||||
GdkScreen *screen = cb_data;
|
||||
|
||||
gdkwin = gdk_x11_window_lookup_for_display (gdk_screen_get_display (screen), window);
|
||||
|
||||
if (is_start)
|
||||
{
|
||||
if (gdkwin)
|
||||
g_object_ref (gdkwin);
|
||||
else
|
||||
{
|
||||
gdkwin = gdk_x11_window_foreign_new_for_display (gdk_screen_get_display (screen), window);
|
||||
|
||||
/* gdk_window_foreign_new_for_display() can fail and return NULL if the
|
||||
* window has already been destroyed.
|
||||
*/
|
||||
if (!gdkwin)
|
||||
return False;
|
||||
}
|
||||
|
||||
gdk_window_add_filter (gdkwin, gdk_xsettings_client_event_filter, screen);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!gdkwin)
|
||||
{
|
||||
/* gdkwin should not be NULL here, since if starting the watch succeeded
|
||||
* we have a reference on the window. It might mean that the caller didn't
|
||||
* remove the watch when it got a DestroyNotify event. Or maybe the
|
||||
* caller ignored the return value when starting the watch failed.
|
||||
*/
|
||||
g_warning ("gdk_xsettings_watch_cb(): Couldn't find window to unwatch");
|
||||
return False;
|
||||
}
|
||||
|
||||
gdk_window_remove_filter (gdkwin, gdk_xsettings_client_event_filter, screen);
|
||||
g_object_unref (gdkwin);
|
||||
}
|
||||
|
||||
return True;
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_xsettings_notify_cb (const char *name,
|
||||
XSettingsAction action,
|
||||
XSettingsSetting *setting,
|
||||
void *data)
|
||||
{
|
||||
GdkEvent new_event;
|
||||
GdkScreen *screen = data;
|
||||
GdkX11Screen *x11_screen = data;
|
||||
|
||||
if (x11_screen->xsettings_in_init)
|
||||
return;
|
||||
|
||||
new_event.type = GDK_SETTING;
|
||||
new_event.setting.window = gdk_screen_get_root_window (screen);
|
||||
new_event.setting.send_event = FALSE;
|
||||
new_event.setting.name = (char*) gdk_from_xsettings_name (name);
|
||||
|
||||
if (!new_event.setting.name)
|
||||
return;
|
||||
|
||||
switch (action)
|
||||
{
|
||||
case XSETTINGS_ACTION_NEW:
|
||||
new_event.setting.action = GDK_SETTING_ACTION_NEW;
|
||||
break;
|
||||
case XSETTINGS_ACTION_CHANGED:
|
||||
new_event.setting.action = GDK_SETTING_ACTION_CHANGED;
|
||||
break;
|
||||
case XSETTINGS_ACTION_DELETED:
|
||||
new_event.setting.action = GDK_SETTING_ACTION_DELETED;
|
||||
break;
|
||||
}
|
||||
|
||||
gdk_event_put (&new_event);
|
||||
}
|
||||
|
||||
void
|
||||
_gdk_x11_screen_init_events (GdkScreen *screen)
|
||||
{
|
||||
GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen);
|
||||
|
||||
/* Keep a flag to avoid extra notifies that we don't need
|
||||
*/
|
||||
x11_screen->xsettings_in_init = TRUE;
|
||||
x11_screen->xsettings_client = xsettings_client_new_with_grab_funcs (x11_screen->xdisplay,
|
||||
x11_screen->screen_num,
|
||||
gdk_xsettings_notify_cb,
|
||||
gdk_xsettings_watch_cb,
|
||||
screen,
|
||||
refcounted_grab_server,
|
||||
refcounted_ungrab_server);
|
||||
x11_screen->xsettings_in_init = FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_x11_screen_get_window_manager_name:
|
||||
* @screen: (type GdkX11Screen): a #GdkScreen
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
#include "gdkscreenprivate.h"
|
||||
#include "gdkx11screen.h"
|
||||
#include "gdkvisual.h"
|
||||
#include "xsettings-client.h"
|
||||
#include <X11/X.h>
|
||||
#include <X11/Xlib.h>
|
||||
|
||||
@@ -56,11 +55,15 @@ struct _GdkX11Screen
|
||||
gint xft_dpi;
|
||||
|
||||
/* Window manager */
|
||||
GdkAtom cm_selection_atom;
|
||||
long last_wmspec_check_time;
|
||||
Window wmspec_check_window;
|
||||
char *window_manager_name;
|
||||
|
||||
/* X Settings */
|
||||
GdkWindow *xsettings_manager_window;
|
||||
Atom xsettings_selection_atom;
|
||||
GHashTable *xsettings; /* string of GDK settings name => GValue */
|
||||
|
||||
/* TRUE if wmspec_check_window has changed since last
|
||||
* fetch of _NET_SUPPORTED
|
||||
*/
|
||||
@@ -69,7 +72,6 @@ struct _GdkX11Screen
|
||||
* fetch of window manager name
|
||||
*/
|
||||
guint need_refetch_wm_name : 1;
|
||||
guint xsettings_in_init : 1;
|
||||
guint is_composited : 1;
|
||||
guint xft_init : 1; /* Whether we've intialized these values yet */
|
||||
guint xft_antialias : 1;
|
||||
@@ -86,9 +88,6 @@ struct _GdkX11Screen
|
||||
GHashTable *visual_hash;
|
||||
GdkVisual *rgba_visual;
|
||||
|
||||
/* X settings */
|
||||
XSettingsClient *xsettings_client;
|
||||
|
||||
/* cache for window->translate vfunc */
|
||||
GC subwindow_gcs[32];
|
||||
|
||||
|
||||
@@ -97,20 +97,3 @@ gdk_from_xsettings_name (const char *xname)
|
||||
return g_hash_table_lookup (hash, xname);
|
||||
}
|
||||
|
||||
static const char *
|
||||
gdk_to_xsettings_name (const char *gdkname)
|
||||
{
|
||||
static GHashTable *hash = NULL;
|
||||
guint i;
|
||||
|
||||
if (G_UNLIKELY (hash == NULL))
|
||||
{
|
||||
hash = g_hash_table_new (g_str_hash, g_str_equal);
|
||||
|
||||
for (i = 0; i < G_N_ELEMENTS (gdk_settings_map); i++)
|
||||
g_hash_table_insert (hash, (gpointer)gdk_settings_map[i].gdkname,
|
||||
(gpointer)gdk_settings_map[i].xname);
|
||||
}
|
||||
|
||||
return g_hash_table_lookup (hash, gdkname);
|
||||
}
|
||||
|
||||
@@ -55,6 +55,7 @@ GType gdk_x11_window_get_type (void);
|
||||
Window gdk_x11_window_get_xid (GdkWindow *window);
|
||||
void gdk_x11_window_set_user_time (GdkWindow *window,
|
||||
guint32 timestamp);
|
||||
GDK_AVAILABLE_IN_3_4
|
||||
void gdk_x11_window_set_utf8_property (GdkWindow *window,
|
||||
const gchar *name,
|
||||
const gchar *value);
|
||||
|
||||
+349
-365
@@ -25,58 +25,102 @@
|
||||
|
||||
#include "xsettings-client.h"
|
||||
|
||||
#include <limits.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <gdk/x11/gdkx11display.h>
|
||||
#include <gdk/x11/gdkx11property.h>
|
||||
#include <gdk/x11/gdkx11screen.h>
|
||||
#include <gdk/x11/gdkx11window.h>
|
||||
#include <gdk/x11/gdkprivate-x11.h>
|
||||
#include <gdk/x11/gdkscreen-x11.h>
|
||||
|
||||
#include <gdkinternals.h>
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xmd.h> /* For CARD16 */
|
||||
|
||||
struct _XSettingsClient
|
||||
#include "gdksettings.c"
|
||||
|
||||
/* Types of settings possible. Enum values correspond to
|
||||
* protocol values.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
Display *display;
|
||||
int screen;
|
||||
XSettingsNotifyFunc notify;
|
||||
XSettingsWatchFunc watch;
|
||||
void *cb_data;
|
||||
XSETTINGS_TYPE_INT = 0,
|
||||
XSETTINGS_TYPE_STRING = 1,
|
||||
XSETTINGS_TYPE_COLOR = 2
|
||||
} XSettingsType;
|
||||
|
||||
XSettingsGrabFunc grab;
|
||||
XSettingsGrabFunc ungrab;
|
||||
typedef struct _XSettingsBuffer XSettingsBuffer;
|
||||
|
||||
Window manager_window;
|
||||
Atom manager_atom;
|
||||
Atom selection_atom;
|
||||
Atom xsettings_atom;
|
||||
|
||||
XSettingsList *settings;
|
||||
struct _XSettingsBuffer
|
||||
{
|
||||
char byte_order;
|
||||
size_t len;
|
||||
unsigned char *data;
|
||||
unsigned char *pos;
|
||||
};
|
||||
|
||||
static void
|
||||
notify_changes (XSettingsClient *client,
|
||||
XSettingsList *old_list)
|
||||
gdk_xsettings_notify (GdkX11Screen *x11_screen,
|
||||
const char *name,
|
||||
GdkSettingAction action)
|
||||
{
|
||||
GdkEvent new_event;
|
||||
|
||||
new_event.type = GDK_SETTING;
|
||||
new_event.setting.window = gdk_screen_get_root_window (GDK_SCREEN (x11_screen));
|
||||
new_event.setting.send_event = FALSE;
|
||||
new_event.setting.action = action;
|
||||
new_event.setting.name = (char*) name;
|
||||
|
||||
gdk_event_put (&new_event);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
value_equal (const GValue *value_a,
|
||||
const GValue *value_b)
|
||||
{
|
||||
if (G_VALUE_TYPE (value_a) != G_VALUE_TYPE (value_b))
|
||||
return FALSE;
|
||||
|
||||
switch (G_VALUE_TYPE (value_a))
|
||||
{
|
||||
case G_TYPE_INT:
|
||||
return g_value_get_int (value_a) == g_value_get_int (value_b);
|
||||
case XSETTINGS_TYPE_COLOR:
|
||||
return gdk_rgba_equal (g_value_get_boxed (value_a), g_value_get_boxed (value_b));
|
||||
case G_TYPE_STRING:
|
||||
return g_str_equal (g_value_get_string (value_a), g_value_get_string (value_b));
|
||||
default:
|
||||
g_warning ("unable to compare values of type %s", g_type_name (G_VALUE_TYPE (value_a)));
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
notify_changes (GdkX11Screen *x11_screen,
|
||||
GHashTable *old_list)
|
||||
{
|
||||
GHashTableIter iter;
|
||||
XSettingsSetting *setting, *old_setting;
|
||||
GValue *setting, *old_setting;
|
||||
const char *name;
|
||||
|
||||
if (!client->notify)
|
||||
return;
|
||||
|
||||
if (client->settings != NULL)
|
||||
if (x11_screen->xsettings != NULL)
|
||||
{
|
||||
g_hash_table_iter_init (&iter, client->settings);
|
||||
while (g_hash_table_iter_next (&iter, NULL, (gpointer*) &setting))
|
||||
g_hash_table_iter_init (&iter, x11_screen->xsettings);
|
||||
while (g_hash_table_iter_next (&iter, (gpointer *) &name, (gpointer*) &setting))
|
||||
{
|
||||
old_setting = xsettings_list_lookup (old_list, setting->name);
|
||||
old_setting = old_list ? g_hash_table_lookup (old_list, name) : NULL;
|
||||
|
||||
if (old_setting == NULL)
|
||||
client->notify (setting->name, XSETTINGS_ACTION_NEW, setting, client->cb_data);
|
||||
else if (!xsettings_setting_equal (setting, old_setting))
|
||||
client->notify (setting->name, XSETTINGS_ACTION_CHANGED, setting, client->cb_data);
|
||||
gdk_xsettings_notify (x11_screen, name, GDK_SETTING_ACTION_NEW);
|
||||
else if (!value_equal (setting, old_setting))
|
||||
gdk_xsettings_notify (x11_screen, name, GDK_SETTING_ACTION_CHANGED);
|
||||
|
||||
/* remove setting from old_list */
|
||||
if (old_setting != NULL)
|
||||
g_hash_table_remove (old_list, setting->name);
|
||||
g_hash_table_remove (old_list, name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,270 +128,275 @@ notify_changes (XSettingsClient *client,
|
||||
{
|
||||
/* old_list now contains only deleted settings */
|
||||
g_hash_table_iter_init (&iter, old_list);
|
||||
while (g_hash_table_iter_next (&iter, NULL, (gpointer*) &old_setting))
|
||||
client->notify (old_setting->name, XSETTINGS_ACTION_DELETED, NULL, client->cb_data);
|
||||
while (g_hash_table_iter_next (&iter, (gpointer *) &name, (gpointer*) &old_setting))
|
||||
gdk_xsettings_notify (x11_screen, name, GDK_SETTING_ACTION_DELETED);
|
||||
}
|
||||
}
|
||||
|
||||
static int
|
||||
ignore_errors (Display *display, XErrorEvent *event)
|
||||
{
|
||||
return True;
|
||||
}
|
||||
|
||||
static char local_byte_order = '\0';
|
||||
|
||||
#define BYTES_LEFT(buffer) ((buffer)->data + (buffer)->len - (buffer)->pos)
|
||||
|
||||
static XSettingsResult
|
||||
#define return_if_fail_bytes(buffer, n_bytes) G_STMT_START{ \
|
||||
if (BYTES_LEFT (buffer) < (n_bytes)) \
|
||||
{ \
|
||||
g_warning ("Invalid XSETTINGS property (read off end: Expected %u bytes, only %ld left", \
|
||||
(n_bytes), BYTES_LEFT (buffer)); \
|
||||
return FALSE; \
|
||||
} \
|
||||
}G_STMT_END
|
||||
|
||||
static gboolean
|
||||
fetch_card16 (XSettingsBuffer *buffer,
|
||||
CARD16 *result)
|
||||
{
|
||||
CARD16 x;
|
||||
|
||||
if (BYTES_LEFT (buffer) < 2)
|
||||
return XSETTINGS_ACCESS;
|
||||
return_if_fail_bytes (buffer, 2);
|
||||
|
||||
x = *(CARD16 *)buffer->pos;
|
||||
buffer->pos += 2;
|
||||
|
||||
if (buffer->byte_order == local_byte_order)
|
||||
*result = x;
|
||||
if (buffer->byte_order == MSBFirst)
|
||||
*result = GUINT16_FROM_BE (x);
|
||||
else
|
||||
*result = (x << 8) | (x >> 8);
|
||||
*result = GUINT16_FROM_LE (x);
|
||||
|
||||
return XSETTINGS_SUCCESS;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static XSettingsResult
|
||||
static gboolean
|
||||
fetch_ushort (XSettingsBuffer *buffer,
|
||||
unsigned short *result)
|
||||
{
|
||||
CARD16 x;
|
||||
XSettingsResult r;
|
||||
gboolean r;
|
||||
|
||||
r = fetch_card16 (buffer, &x);
|
||||
if (r == XSETTINGS_SUCCESS)
|
||||
if (r)
|
||||
*result = x;
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
static XSettingsResult
|
||||
static gboolean
|
||||
fetch_card32 (XSettingsBuffer *buffer,
|
||||
CARD32 *result)
|
||||
{
|
||||
CARD32 x;
|
||||
|
||||
if (BYTES_LEFT (buffer) < 4)
|
||||
return XSETTINGS_ACCESS;
|
||||
return_if_fail_bytes (buffer, 4);
|
||||
|
||||
x = *(CARD32 *)buffer->pos;
|
||||
buffer->pos += 4;
|
||||
|
||||
if (buffer->byte_order == local_byte_order)
|
||||
*result = x;
|
||||
if (buffer->byte_order == MSBFirst)
|
||||
*result = GUINT32_FROM_BE (x);
|
||||
else
|
||||
*result = (x << 24) | ((x & 0xff00) << 8) | ((x & 0xff0000) >> 8) | (x >> 24);
|
||||
*result = GUINT32_FROM_LE (x);
|
||||
|
||||
return XSETTINGS_SUCCESS;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static XSettingsResult
|
||||
static gboolean
|
||||
fetch_card8 (XSettingsBuffer *buffer,
|
||||
CARD8 *result)
|
||||
{
|
||||
if (BYTES_LEFT (buffer) < 1)
|
||||
return XSETTINGS_ACCESS;
|
||||
return_if_fail_bytes (buffer, 1);
|
||||
|
||||
*result = *(CARD8 *)buffer->pos;
|
||||
buffer->pos += 1;
|
||||
|
||||
return XSETTINGS_SUCCESS;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
#define XSETTINGS_PAD(n,m) ((n + m - 1) & (~(m-1)))
|
||||
|
||||
static XSettingsList *
|
||||
static gboolean
|
||||
fetch_string (XSettingsBuffer *buffer,
|
||||
guint length,
|
||||
char **result)
|
||||
{
|
||||
guint pad_len;
|
||||
|
||||
pad_len = XSETTINGS_PAD (length, 4);
|
||||
if (pad_len < length) /* guard against overflow */
|
||||
{
|
||||
g_warning ("Invalid XSETTINGS property (overflow in string length)");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return_if_fail_bytes (buffer, pad_len);
|
||||
|
||||
*result = g_strndup ((char *) buffer->pos, length);
|
||||
buffer->pos += pad_len;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
free_value (gpointer data)
|
||||
{
|
||||
GValue *value = data;
|
||||
|
||||
g_value_unset (value);
|
||||
g_free (value);
|
||||
}
|
||||
|
||||
static GHashTable *
|
||||
parse_settings (unsigned char *data,
|
||||
size_t len)
|
||||
{
|
||||
XSettingsBuffer buffer;
|
||||
XSettingsResult result = XSETTINGS_SUCCESS;
|
||||
XSettingsList *settings = NULL;
|
||||
GHashTable *settings = NULL;
|
||||
CARD32 serial;
|
||||
CARD32 n_entries;
|
||||
CARD32 i;
|
||||
XSettingsSetting *setting = NULL;
|
||||
GValue *value = NULL;
|
||||
char *x_name = NULL;
|
||||
const char *gdk_name;
|
||||
|
||||
local_byte_order = xsettings_byte_order ();
|
||||
|
||||
buffer.pos = buffer.data = data;
|
||||
buffer.len = len;
|
||||
|
||||
result = fetch_card8 (&buffer, (unsigned char *)&buffer.byte_order);
|
||||
if (!fetch_card8 (&buffer, (unsigned char *)&buffer.byte_order))
|
||||
goto out;
|
||||
|
||||
if (buffer.byte_order != MSBFirst &&
|
||||
buffer.byte_order != LSBFirst)
|
||||
{
|
||||
fprintf (stderr, "Invalid byte order in XSETTINGS property\n");
|
||||
result = XSETTINGS_FAILED;
|
||||
g_warning ("Invalid XSETTINGS property (unknown byte order %u)", buffer.byte_order);
|
||||
goto out;
|
||||
}
|
||||
|
||||
buffer.pos += 3;
|
||||
|
||||
result = fetch_card32 (&buffer, &serial);
|
||||
if (result != XSETTINGS_SUCCESS)
|
||||
if (!fetch_card32 (&buffer, &serial) ||
|
||||
!fetch_card32 (&buffer, &n_entries))
|
||||
goto out;
|
||||
|
||||
result = fetch_card32 (&buffer, &n_entries);
|
||||
if (result != XSETTINGS_SUCCESS)
|
||||
goto out;
|
||||
GDK_NOTE(SETTINGS, g_print("reading %u settings (serial %u byte order %u)\n", n_entries, serial, buffer.byte_order));
|
||||
|
||||
for (i = 0; i < n_entries; i++)
|
||||
{
|
||||
CARD8 type;
|
||||
CARD16 name_len;
|
||||
CARD32 v_int;
|
||||
size_t pad_len;
|
||||
|
||||
result = fetch_card8 (&buffer, &type);
|
||||
if (result != XSETTINGS_SUCCESS)
|
||||
if (!fetch_card8 (&buffer, &type))
|
||||
goto out;
|
||||
|
||||
buffer.pos += 1;
|
||||
|
||||
result = fetch_card16 (&buffer, &name_len);
|
||||
if (result != XSETTINGS_SUCCESS)
|
||||
if (!fetch_card16 (&buffer, &name_len))
|
||||
goto out;
|
||||
|
||||
pad_len = XSETTINGS_PAD(name_len, 4);
|
||||
if (BYTES_LEFT (&buffer) < pad_len)
|
||||
{
|
||||
result = XSETTINGS_ACCESS;
|
||||
goto out;
|
||||
}
|
||||
|
||||
setting = malloc (sizeof *setting);
|
||||
if (!setting)
|
||||
{
|
||||
result = XSETTINGS_NO_MEM;
|
||||
goto out;
|
||||
}
|
||||
setting->type = XSETTINGS_TYPE_INT; /* No allocated memory */
|
||||
|
||||
setting->name = malloc (name_len + 1);
|
||||
if (!setting->name)
|
||||
{
|
||||
result = XSETTINGS_NO_MEM;
|
||||
goto out;
|
||||
}
|
||||
|
||||
memcpy (setting->name, buffer.pos, name_len);
|
||||
setting->name[name_len] = '\0';
|
||||
buffer.pos += pad_len;
|
||||
|
||||
result = fetch_card32 (&buffer, &v_int);
|
||||
if (result != XSETTINGS_SUCCESS)
|
||||
if (!fetch_string (&buffer, name_len, &x_name) ||
|
||||
/* last change serial (we ignore it) */
|
||||
!fetch_card32 (&buffer, &v_int))
|
||||
goto out;
|
||||
setting->last_change_serial = v_int;
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case XSETTINGS_TYPE_INT:
|
||||
result = fetch_card32 (&buffer, &v_int);
|
||||
if (result != XSETTINGS_SUCCESS)
|
||||
if (!fetch_card32 (&buffer, &v_int))
|
||||
goto out;
|
||||
|
||||
setting->data.v_int = (INT32)v_int;
|
||||
value = g_new0 (GValue, 1);
|
||||
g_value_init (value, G_TYPE_INT);
|
||||
g_value_set_int (value, (gint32) v_int);
|
||||
|
||||
GDK_NOTE(SETTINGS, g_print(" %s = %d\n", x_name, (gint32) v_int));
|
||||
break;
|
||||
case XSETTINGS_TYPE_STRING:
|
||||
result = fetch_card32 (&buffer, &v_int);
|
||||
if (result != XSETTINGS_SUCCESS)
|
||||
goto out;
|
||||
{
|
||||
char *s;
|
||||
|
||||
pad_len = XSETTINGS_PAD (v_int, 4);
|
||||
if (v_int + 1 == 0 || /* Guard against wrap-around */
|
||||
BYTES_LEFT (&buffer) < pad_len)
|
||||
{
|
||||
result = XSETTINGS_ACCESS;
|
||||
goto out;
|
||||
}
|
||||
|
||||
setting->data.v_string = malloc (v_int + 1);
|
||||
if (!setting->data.v_string)
|
||||
{
|
||||
result = XSETTINGS_NO_MEM;
|
||||
goto out;
|
||||
}
|
||||
|
||||
memcpy (setting->data.v_string, buffer.pos, v_int);
|
||||
setting->data.v_string[v_int] = '\0';
|
||||
buffer.pos += pad_len;
|
||||
if (!fetch_card32 (&buffer, &v_int) ||
|
||||
!fetch_string (&buffer, v_int, &s))
|
||||
goto out;
|
||||
|
||||
value = g_new0 (GValue, 1);
|
||||
g_value_init (value, G_TYPE_STRING);
|
||||
g_value_take_string (value, s);
|
||||
|
||||
GDK_NOTE(SETTINGS, g_print(" %s = \"%s\"\n", x_name, s));
|
||||
}
|
||||
break;
|
||||
case XSETTINGS_TYPE_COLOR:
|
||||
result = fetch_ushort (&buffer, &setting->data.v_color.red);
|
||||
if (result != XSETTINGS_SUCCESS)
|
||||
goto out;
|
||||
result = fetch_ushort (&buffer, &setting->data.v_color.green);
|
||||
if (result != XSETTINGS_SUCCESS)
|
||||
goto out;
|
||||
result = fetch_ushort (&buffer, &setting->data.v_color.blue);
|
||||
if (result != XSETTINGS_SUCCESS)
|
||||
goto out;
|
||||
result = fetch_ushort (&buffer, &setting->data.v_color.alpha);
|
||||
if (result != XSETTINGS_SUCCESS)
|
||||
goto out;
|
||||
{
|
||||
unsigned short red, green, blue, alpha;
|
||||
GdkRGBA rgba;
|
||||
|
||||
if (!fetch_ushort (&buffer, &red) ||
|
||||
!fetch_ushort (&buffer, &green) ||
|
||||
!fetch_ushort (&buffer, &blue) ||
|
||||
!fetch_ushort (&buffer, &alpha))
|
||||
goto out;
|
||||
|
||||
rgba.red = red / 65535.0;
|
||||
rgba.green = green / 65535.0;
|
||||
rgba.blue = blue / 65535.0;
|
||||
rgba.alpha = alpha / 65535.0;
|
||||
|
||||
value = g_new0 (GValue, 1);
|
||||
g_value_init (value, G_TYPE_STRING);
|
||||
g_value_set_boxed (value, &rgba);
|
||||
|
||||
GDK_NOTE(SETTINGS, g_print(" %s = #%02X%02X%02X%02X\n", x_name, alpha,red, green, blue));
|
||||
}
|
||||
break;
|
||||
default:
|
||||
/* Quietly ignore unknown types */
|
||||
GDK_NOTE(SETTINGS, g_print(" %s = ignored (unknown type %u)\n", x_name, type));
|
||||
break;
|
||||
}
|
||||
|
||||
setting->type = type;
|
||||
gdk_name = gdk_from_xsettings_name (x_name);
|
||||
g_free (x_name);
|
||||
x_name = NULL;
|
||||
|
||||
result = xsettings_list_insert (&settings, setting);
|
||||
if (result != XSETTINGS_SUCCESS)
|
||||
goto out;
|
||||
if (gdk_name == NULL)
|
||||
{
|
||||
GDK_NOTE(SETTINGS, g_print(" ==> unknown to GTK\n"));
|
||||
}
|
||||
else
|
||||
{
|
||||
GDK_NOTE(SETTINGS, g_print(" ==> storing as '%s'\n", gdk_name));
|
||||
|
||||
setting = NULL;
|
||||
}
|
||||
if (settings == NULL)
|
||||
settings = g_hash_table_new_full (g_str_hash, g_str_equal,
|
||||
NULL,
|
||||
free_value);
|
||||
|
||||
out:
|
||||
if (g_hash_table_lookup (settings, gdk_name) != NULL)
|
||||
{
|
||||
g_warning ("Invalid XSETTINGS property (Duplicate entry for '%s')", gdk_name);
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (result != XSETTINGS_SUCCESS)
|
||||
{
|
||||
switch (result)
|
||||
{
|
||||
case XSETTINGS_NO_MEM:
|
||||
fprintf(stderr, "Out of memory reading XSETTINGS property\n");
|
||||
break;
|
||||
case XSETTINGS_ACCESS:
|
||||
fprintf(stderr, "Invalid XSETTINGS property (read off end)\n");
|
||||
break;
|
||||
case XSETTINGS_DUPLICATE_ENTRY:
|
||||
fprintf (stderr, "Duplicate XSETTINGS entry for '%s'\n", setting->name);
|
||||
case XSETTINGS_FAILED:
|
||||
case XSETTINGS_SUCCESS:
|
||||
case XSETTINGS_NO_ENTRY:
|
||||
break;
|
||||
}
|
||||
|
||||
if (setting)
|
||||
xsettings_setting_free (setting);
|
||||
|
||||
xsettings_list_free (settings);
|
||||
settings = NULL;
|
||||
g_hash_table_insert (settings, (gpointer) gdk_name, value);
|
||||
}
|
||||
|
||||
value = NULL;
|
||||
}
|
||||
|
||||
return settings;
|
||||
|
||||
out:
|
||||
|
||||
if (value)
|
||||
free_value (value);
|
||||
|
||||
if (settings)
|
||||
g_hash_table_unref (settings);
|
||||
|
||||
g_free (x_name);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
read_settings (XSettingsClient *client)
|
||||
read_settings (GdkX11Screen *x11_screen,
|
||||
gboolean do_notify)
|
||||
{
|
||||
Atom type;
|
||||
int format;
|
||||
@@ -356,234 +405,169 @@ read_settings (XSettingsClient *client)
|
||||
unsigned char *data;
|
||||
int result;
|
||||
|
||||
int (*old_handler) (Display *, XErrorEvent *);
|
||||
|
||||
XSettingsList *old_list = client->settings;
|
||||
GHashTable *old_list = x11_screen->xsettings;
|
||||
|
||||
client->settings = NULL;
|
||||
x11_screen->xsettings = NULL;
|
||||
|
||||
if (client->manager_window)
|
||||
if (x11_screen->xsettings_manager_window)
|
||||
{
|
||||
old_handler = XSetErrorHandler (ignore_errors);
|
||||
result = XGetWindowProperty (client->display, client->manager_window,
|
||||
client->xsettings_atom, 0, LONG_MAX,
|
||||
False, client->xsettings_atom,
|
||||
GdkDisplay *display = x11_screen->display;
|
||||
Atom xsettings_atom = gdk_x11_get_xatom_by_name_for_display (display, "_XSETTINGS_SETTINGS");
|
||||
|
||||
gdk_x11_display_error_trap_push (display);
|
||||
result = XGetWindowProperty (gdk_x11_display_get_xdisplay (display),
|
||||
gdk_x11_window_get_xid (x11_screen->xsettings_manager_window),
|
||||
xsettings_atom, 0, LONG_MAX,
|
||||
False, xsettings_atom,
|
||||
&type, &format, &n_items, &bytes_after, &data);
|
||||
XSetErrorHandler (old_handler);
|
||||
gdk_x11_display_error_trap_pop_ignored (display);
|
||||
|
||||
if (result == Success && type != None)
|
||||
{
|
||||
if (type != client->xsettings_atom)
|
||||
if (type != xsettings_atom)
|
||||
{
|
||||
fprintf (stderr, "Invalid type for XSETTINGS property");
|
||||
g_warning ("Invalid type for XSETTINGS property: %s", gdk_x11_get_xatom_name_for_display (display, type));
|
||||
}
|
||||
else if (format != 8)
|
||||
{
|
||||
fprintf (stderr, "Invalid format for XSETTINGS property %d", format);
|
||||
g_warning ("Invalid format for XSETTINGS property: %d", format);
|
||||
}
|
||||
else
|
||||
client->settings = parse_settings (data, n_items);
|
||||
x11_screen->xsettings = parse_settings (data, n_items);
|
||||
|
||||
XFree (data);
|
||||
}
|
||||
}
|
||||
|
||||
notify_changes (client, old_list);
|
||||
xsettings_list_free (old_list);
|
||||
if (do_notify)
|
||||
notify_changes (x11_screen, old_list);
|
||||
if (old_list)
|
||||
g_hash_table_unref (old_list);
|
||||
}
|
||||
|
||||
static void
|
||||
add_events (Display *display,
|
||||
Window window,
|
||||
long mask)
|
||||
static Atom
|
||||
get_selection_atom (GdkX11Screen *x11_screen)
|
||||
{
|
||||
XWindowAttributes attr;
|
||||
|
||||
XGetWindowAttributes (display, window, &attr);
|
||||
XSelectInput (display, window, attr.your_event_mask | mask);
|
||||
return _gdk_x11_get_xatom_for_display_printf (x11_screen->display, "_XSETTINGS_S%d", x11_screen->screen_num);
|
||||
}
|
||||
|
||||
static GdkFilterReturn
|
||||
gdk_xsettings_manager_window_filter (GdkXEvent *xevent,
|
||||
GdkEvent *event,
|
||||
gpointer data);
|
||||
|
||||
static void
|
||||
check_manager_window (XSettingsClient *client)
|
||||
check_manager_window (GdkX11Screen *x11_screen,
|
||||
gboolean notify_changes)
|
||||
{
|
||||
if (client->manager_window && client->watch)
|
||||
client->watch (client->manager_window, False, 0, client->cb_data);
|
||||
GdkDisplay *display;
|
||||
Display *xdisplay;
|
||||
Window manager_window_xid;
|
||||
|
||||
if (client->grab)
|
||||
client->grab (client->display);
|
||||
else
|
||||
XGrabServer (client->display);
|
||||
display = x11_screen->display;
|
||||
xdisplay = gdk_x11_display_get_xdisplay (display);
|
||||
|
||||
client->manager_window = XGetSelectionOwner (client->display,
|
||||
client->selection_atom);
|
||||
if (client->manager_window)
|
||||
XSelectInput (client->display, client->manager_window,
|
||||
PropertyChangeMask | StructureNotifyMask);
|
||||
|
||||
if (client->ungrab)
|
||||
client->ungrab (client->display);
|
||||
else
|
||||
XUngrabServer (client->display);
|
||||
|
||||
XFlush (client->display);
|
||||
|
||||
if (client->manager_window && client->watch)
|
||||
if (x11_screen->xsettings_manager_window)
|
||||
{
|
||||
if (!client->watch (client->manager_window, True,
|
||||
PropertyChangeMask | StructureNotifyMask,
|
||||
client->cb_data))
|
||||
{
|
||||
/* Inability to watch the window probably means that it was destroyed
|
||||
* after we ungrabbed
|
||||
*/
|
||||
client->manager_window = None;
|
||||
return;
|
||||
}
|
||||
gdk_window_remove_filter (x11_screen->xsettings_manager_window, gdk_xsettings_manager_window_filter, x11_screen);
|
||||
g_object_unref (x11_screen->xsettings_manager_window);
|
||||
}
|
||||
|
||||
gdk_x11_display_grab (display);
|
||||
|
||||
manager_window_xid = XGetSelectionOwner (xdisplay, get_selection_atom (x11_screen));
|
||||
x11_screen->xsettings_manager_window = gdk_x11_window_foreign_new_for_display (display,
|
||||
manager_window_xid);
|
||||
/* XXX: Can't use gdk_window_set_events() here because the first call to this
|
||||
* function happens too early in gdk_init() */
|
||||
if (x11_screen->xsettings_manager_window)
|
||||
XSelectInput (xdisplay,
|
||||
gdk_x11_window_get_xid (x11_screen->xsettings_manager_window),
|
||||
PropertyChangeMask | StructureNotifyMask);
|
||||
|
||||
gdk_x11_display_ungrab (display);
|
||||
|
||||
gdk_display_flush (display);
|
||||
|
||||
if (x11_screen->xsettings_manager_window)
|
||||
{
|
||||
gdk_window_add_filter (x11_screen->xsettings_manager_window, gdk_xsettings_manager_window_filter, x11_screen);
|
||||
}
|
||||
|
||||
|
||||
read_settings (client);
|
||||
read_settings (x11_screen, notify_changes);
|
||||
}
|
||||
|
||||
XSettingsClient *
|
||||
xsettings_client_new (Display *display,
|
||||
int screen,
|
||||
XSettingsNotifyFunc notify,
|
||||
XSettingsWatchFunc watch,
|
||||
void *cb_data)
|
||||
static GdkFilterReturn
|
||||
gdk_xsettings_root_window_filter (GdkXEvent *xevent,
|
||||
GdkEvent *event,
|
||||
gpointer data)
|
||||
{
|
||||
return xsettings_client_new_with_grab_funcs (display, screen, notify, watch, cb_data,
|
||||
NULL, NULL);
|
||||
}
|
||||
GdkX11Screen *x11_screen = data;
|
||||
GdkDisplay *display = x11_screen->display;
|
||||
XEvent *xev = xevent;
|
||||
|
||||
XSettingsClient *
|
||||
xsettings_client_new_with_grab_funcs (Display *display,
|
||||
int screen,
|
||||
XSettingsNotifyFunc notify,
|
||||
XSettingsWatchFunc watch,
|
||||
void *cb_data,
|
||||
XSettingsGrabFunc grab,
|
||||
XSettingsGrabFunc ungrab)
|
||||
{
|
||||
XSettingsClient *client;
|
||||
char buffer[256];
|
||||
char *atom_names[3];
|
||||
Atom atoms[3];
|
||||
|
||||
client = malloc (sizeof *client);
|
||||
if (!client)
|
||||
return NULL;
|
||||
|
||||
client->display = display;
|
||||
client->screen = screen;
|
||||
client->notify = notify;
|
||||
client->watch = watch;
|
||||
client->cb_data = cb_data;
|
||||
client->grab = grab;
|
||||
client->ungrab = ungrab;
|
||||
client->manager_window = None;
|
||||
client->settings = NULL;
|
||||
|
||||
sprintf(buffer, "_XSETTINGS_S%d", screen);
|
||||
atom_names[0] = buffer;
|
||||
atom_names[1] = "_XSETTINGS_SETTINGS";
|
||||
atom_names[2] = "MANAGER";
|
||||
|
||||
XInternAtoms (display, atom_names, 3, False, atoms);
|
||||
|
||||
client->selection_atom = atoms[0];
|
||||
client->xsettings_atom = atoms[1];
|
||||
client->manager_atom = atoms[2];
|
||||
|
||||
/* Select on StructureNotify so we get MANAGER events
|
||||
*/
|
||||
add_events (display, RootWindow (display, screen), StructureNotifyMask);
|
||||
|
||||
if (client->watch)
|
||||
client->watch (RootWindow (display, screen), True, StructureNotifyMask,
|
||||
client->cb_data);
|
||||
|
||||
check_manager_window (client);
|
||||
|
||||
return client;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
xsettings_client_set_grab_func (XSettingsClient *client,
|
||||
XSettingsGrabFunc grab)
|
||||
{
|
||||
client->grab = grab;
|
||||
}
|
||||
|
||||
void
|
||||
xsettings_client_set_ungrab_func (XSettingsClient *client,
|
||||
XSettingsGrabFunc ungrab)
|
||||
{
|
||||
client->ungrab = ungrab;
|
||||
}
|
||||
|
||||
void
|
||||
xsettings_client_destroy (XSettingsClient *client)
|
||||
{
|
||||
if (client->watch)
|
||||
client->watch (RootWindow (client->display, client->screen),
|
||||
False, 0, client->cb_data);
|
||||
if (client->manager_window && client->watch)
|
||||
client->watch (client->manager_window, False, 0, client->cb_data);
|
||||
|
||||
xsettings_list_free (client->settings);
|
||||
free (client);
|
||||
}
|
||||
|
||||
XSettingsResult
|
||||
xsettings_client_get_setting (XSettingsClient *client,
|
||||
const char *name,
|
||||
XSettingsSetting **setting)
|
||||
{
|
||||
XSettingsSetting *search = xsettings_list_lookup (client->settings, name);
|
||||
if (search)
|
||||
{
|
||||
*setting = xsettings_setting_copy (search);
|
||||
return *setting ? XSETTINGS_SUCCESS : XSETTINGS_NO_MEM;
|
||||
}
|
||||
else
|
||||
return XSETTINGS_NO_ENTRY;
|
||||
}
|
||||
|
||||
Bool
|
||||
xsettings_client_process_event (XSettingsClient *client,
|
||||
XEvent *xev)
|
||||
{
|
||||
/* The checks here will not unlikely cause us to reread
|
||||
* the properties from the manager window a number of
|
||||
* times when the manager changes from A->B. But manager changes
|
||||
* are going to be pretty rare.
|
||||
*/
|
||||
if (xev->xany.window == RootWindow (client->display, client->screen))
|
||||
if (xev->xany.type == ClientMessage &&
|
||||
xev->xclient.message_type == gdk_x11_get_xatom_by_name_for_display (display, "MANAGER") &&
|
||||
xev->xclient.data.l[1] == get_selection_atom (x11_screen))
|
||||
{
|
||||
if (xev->xany.type == ClientMessage &&
|
||||
xev->xclient.message_type == client->manager_atom &&
|
||||
xev->xclient.data.l[1] == client->selection_atom)
|
||||
{
|
||||
check_manager_window (client);
|
||||
return True;
|
||||
}
|
||||
}
|
||||
else if (xev->xany.window == client->manager_window)
|
||||
{
|
||||
if (xev->xany.type == DestroyNotify)
|
||||
{
|
||||
check_manager_window (client);
|
||||
/* let GDK do its cleanup */
|
||||
return False;
|
||||
}
|
||||
else if (xev->xany.type == PropertyNotify)
|
||||
{
|
||||
read_settings (client);
|
||||
return True;
|
||||
}
|
||||
check_manager_window (x11_screen, TRUE);
|
||||
return GDK_FILTER_REMOVE;
|
||||
}
|
||||
|
||||
return False;
|
||||
return GDK_FILTER_CONTINUE;
|
||||
}
|
||||
|
||||
static GdkFilterReturn
|
||||
gdk_xsettings_manager_window_filter (GdkXEvent *xevent,
|
||||
GdkEvent *event,
|
||||
gpointer data)
|
||||
{
|
||||
GdkX11Screen *x11_screen = data;
|
||||
XEvent *xev = xevent;
|
||||
|
||||
if (xev->xany.type == DestroyNotify)
|
||||
{
|
||||
check_manager_window (x11_screen, TRUE);
|
||||
/* let GDK do its cleanup */
|
||||
return GDK_FILTER_CONTINUE;
|
||||
}
|
||||
else if (xev->xany.type == PropertyNotify)
|
||||
{
|
||||
read_settings (x11_screen, TRUE);
|
||||
return GDK_FILTER_REMOVE;
|
||||
}
|
||||
|
||||
return GDK_FILTER_CONTINUE;;
|
||||
}
|
||||
|
||||
void
|
||||
_gdk_x11_xsettings_init (GdkX11Screen *x11_screen)
|
||||
{
|
||||
gdk_window_add_filter (gdk_screen_get_root_window (GDK_SCREEN (x11_screen)), gdk_xsettings_root_window_filter, x11_screen);
|
||||
|
||||
check_manager_window (x11_screen, FALSE);
|
||||
}
|
||||
|
||||
void
|
||||
_gdk_x11_xsettings_finish (GdkX11Screen *x11_screen)
|
||||
{
|
||||
gdk_window_remove_filter (gdk_screen_get_root_window (GDK_SCREEN (x11_screen)), gdk_xsettings_root_window_filter, x11_screen);
|
||||
if (x11_screen->xsettings_manager_window)
|
||||
{
|
||||
gdk_window_remove_filter (x11_screen->xsettings_manager_window, gdk_xsettings_manager_window_filter, x11_screen);
|
||||
g_object_unref (x11_screen->xsettings_manager_window);
|
||||
x11_screen->xsettings_manager_window = NULL;
|
||||
}
|
||||
|
||||
if (x11_screen->xsettings)
|
||||
{
|
||||
g_hash_table_unref (x11_screen->xsettings);
|
||||
x11_screen->xsettings = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -23,57 +23,9 @@
|
||||
#ifndef XSETTINGS_CLIENT_H
|
||||
#define XSETTINGS_CLIENT_H
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
#include "xsettings-common.h"
|
||||
#include <gdk/x11/gdkx11screen.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
typedef struct _XSettingsClient XSettingsClient;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
XSETTINGS_ACTION_NEW,
|
||||
XSETTINGS_ACTION_CHANGED,
|
||||
XSETTINGS_ACTION_DELETED
|
||||
} XSettingsAction;
|
||||
|
||||
typedef void (*XSettingsNotifyFunc) (const char *name,
|
||||
XSettingsAction action,
|
||||
XSettingsSetting *setting,
|
||||
void *cb_data);
|
||||
typedef Bool (*XSettingsWatchFunc) (Window window,
|
||||
Bool is_start,
|
||||
long mask,
|
||||
void *cb_data);
|
||||
typedef void (*XSettingsGrabFunc) (Display *display);
|
||||
|
||||
XSettingsClient *xsettings_client_new (Display *display,
|
||||
int screen,
|
||||
XSettingsNotifyFunc notify,
|
||||
XSettingsWatchFunc watch,
|
||||
void *cb_data);
|
||||
XSettingsClient *xsettings_client_new_with_grab_funcs (Display *display,
|
||||
int screen,
|
||||
XSettingsNotifyFunc notify,
|
||||
XSettingsWatchFunc watch,
|
||||
void *cb_data,
|
||||
XSettingsGrabFunc grab,
|
||||
XSettingsGrabFunc ungrab);
|
||||
void xsettings_client_set_grab_func (XSettingsClient *client,
|
||||
XSettingsGrabFunc grab);
|
||||
void xsettings_client_set_ungrab_func (XSettingsClient *client,
|
||||
XSettingsGrabFunc ungrab);
|
||||
void xsettings_client_destroy (XSettingsClient *client);
|
||||
Bool xsettings_client_process_event (XSettingsClient *client,
|
||||
XEvent *xev);
|
||||
XSettingsResult xsettings_client_get_setting (XSettingsClient *client,
|
||||
const char *name,
|
||||
XSettingsSetting **setting);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
void _gdk_x11_xsettings_init (GdkX11Screen *x11_screen);
|
||||
void _gdk_x11_xsettings_finish (GdkX11Screen *x11_screen);
|
||||
|
||||
#endif /* XSETTINGS_CLIENT_H */
|
||||
|
||||
@@ -1,158 +0,0 @@
|
||||
/*
|
||||
* Copyright © 2001 Red Hat, Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
* the above copyright notice appear in all copies and that both that
|
||||
* copyright notice and this permission notice appear in supporting
|
||||
* documentation, and that the name of Red Hat not be used in advertising or
|
||||
* publicity pertaining to distribution of the software without specific,
|
||||
* written prior permission. Red Hat makes no representations about the
|
||||
* suitability of this software for any purpose. It is provided "as is"
|
||||
* without express or implied warranty.
|
||||
*
|
||||
* RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL RED HAT
|
||||
* BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
|
||||
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*
|
||||
* Author: Owen Taylor, Red Hat, Inc.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "xsettings-common.h"
|
||||
|
||||
#include "string.h"
|
||||
#include "stdlib.h"
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xmd.h> /* For CARD32 */
|
||||
|
||||
XSettingsSetting *
|
||||
xsettings_setting_copy (XSettingsSetting *setting)
|
||||
{
|
||||
XSettingsSetting *result;
|
||||
size_t str_len;
|
||||
|
||||
result = malloc (sizeof *result);
|
||||
if (!result)
|
||||
return NULL;
|
||||
|
||||
str_len = strlen (setting->name);
|
||||
result->name = malloc (str_len + 1);
|
||||
if (!result->name)
|
||||
goto err;
|
||||
|
||||
memcpy (result->name, setting->name, str_len + 1);
|
||||
|
||||
result->type = setting->type;
|
||||
|
||||
switch (setting->type)
|
||||
{
|
||||
case XSETTINGS_TYPE_INT:
|
||||
result->data.v_int = setting->data.v_int;
|
||||
break;
|
||||
case XSETTINGS_TYPE_COLOR:
|
||||
result->data.v_color = setting->data.v_color;
|
||||
break;
|
||||
case XSETTINGS_TYPE_STRING:
|
||||
str_len = strlen (setting->data.v_string);
|
||||
result->data.v_string = malloc (str_len + 1);
|
||||
if (!result->data.v_string)
|
||||
goto err;
|
||||
|
||||
memcpy (result->data.v_string, setting->data.v_string, str_len + 1);
|
||||
break;
|
||||
}
|
||||
|
||||
result->last_change_serial = setting->last_change_serial;
|
||||
|
||||
return result;
|
||||
|
||||
err:
|
||||
if (result->name)
|
||||
free (result->name);
|
||||
free (result);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int
|
||||
xsettings_setting_equal (XSettingsSetting *setting_a,
|
||||
XSettingsSetting *setting_b)
|
||||
{
|
||||
if (setting_a->type != setting_b->type)
|
||||
return 0;
|
||||
|
||||
if (strcmp (setting_a->name, setting_b->name) != 0)
|
||||
return 0;
|
||||
|
||||
switch (setting_a->type)
|
||||
{
|
||||
case XSETTINGS_TYPE_INT:
|
||||
return setting_a->data.v_int == setting_b->data.v_int;
|
||||
case XSETTINGS_TYPE_COLOR:
|
||||
return (setting_a->data.v_color.red == setting_b->data.v_color.red &&
|
||||
setting_a->data.v_color.green == setting_b->data.v_color.green &&
|
||||
setting_a->data.v_color.blue == setting_b->data.v_color.blue &&
|
||||
setting_a->data.v_color.alpha == setting_b->data.v_color.alpha);
|
||||
case XSETTINGS_TYPE_STRING:
|
||||
return strcmp (setting_a->data.v_string, setting_b->data.v_string) == 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
xsettings_setting_free (XSettingsSetting *setting)
|
||||
{
|
||||
if (setting->type == XSETTINGS_TYPE_STRING)
|
||||
free (setting->data.v_string);
|
||||
|
||||
if (setting->name)
|
||||
free (setting->name);
|
||||
|
||||
free (setting);
|
||||
}
|
||||
|
||||
void
|
||||
xsettings_list_free (XSettingsList *list)
|
||||
{
|
||||
if (list != NULL)
|
||||
g_hash_table_destroy (list);
|
||||
}
|
||||
|
||||
XSettingsResult
|
||||
xsettings_list_insert (XSettingsList **list,
|
||||
XSettingsSetting *setting)
|
||||
{
|
||||
if (*list == NULL)
|
||||
*list = g_hash_table_new_full (g_str_hash, g_str_equal, NULL,
|
||||
(GDestroyNotify) xsettings_setting_free);
|
||||
|
||||
if (g_hash_table_lookup (*list, setting->name) != NULL)
|
||||
return XSETTINGS_DUPLICATE_ENTRY;
|
||||
|
||||
g_hash_table_insert (*list, setting->name, setting);
|
||||
return XSETTINGS_SUCCESS;
|
||||
}
|
||||
|
||||
XSettingsSetting *
|
||||
xsettings_list_lookup (XSettingsList *list,
|
||||
const char *name)
|
||||
{
|
||||
if (list == NULL)
|
||||
return NULL;
|
||||
|
||||
return g_hash_table_lookup (list, name);
|
||||
}
|
||||
|
||||
char
|
||||
xsettings_byte_order (void)
|
||||
{
|
||||
CARD32 myint = 0x01020304;
|
||||
return (*(char *)&myint == 1) ? MSBFirst : LSBFirst;
|
||||
}
|
||||
@@ -1,122 +0,0 @@
|
||||
/*
|
||||
* Copyright © 2001 Red Hat, Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
* the above copyright notice appear in all copies and that both that
|
||||
* copyright notice and this permission notice appear in supporting
|
||||
* documentation, and that the name of Red Hat not be used in advertising or
|
||||
* publicity pertaining to distribution of the software without specific,
|
||||
* written prior permission. Red Hat makes no representations about the
|
||||
* suitability of this software for any purpose. It is provided "as is"
|
||||
* without express or implied warranty.
|
||||
*
|
||||
* RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL RED HAT
|
||||
* BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
|
||||
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*
|
||||
* Author: Owen Taylor, Red Hat, Inc.
|
||||
*/
|
||||
#ifndef XSETTINGS_COMMON_H
|
||||
#define XSETTINGS_COMMON_H
|
||||
|
||||
#include <glib.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
/* Renames for GDK inclusion */
|
||||
|
||||
#define xsettings_byte_order _gdk_x11_xsettings_byte_order
|
||||
#define xsettings_client_destroy _gdk_x11_xsettings_client_destroy
|
||||
#define xsettings_client_get_setting _gdk_x11_xsettings_client_get_setting
|
||||
#define xsettings_client_new _gdk_x11_xsettings_client_new
|
||||
#define xsettings_client_new_with_grab_funcs _gdk_x11_xsettings_client_new_with_grab_funcs
|
||||
#define xsettings_client_set_grab_func _gdk_x11_xsettings_client_set_grab_func
|
||||
#define xsettings_client_set_ungrab_func _gdk_x11_xsettings_client_set_ungrab_func
|
||||
#define xsettings_client_process_event _gdk_x11_xsettings_client_process_event
|
||||
#define xsettings_list_free _gdk_x11_xsettings_list_free
|
||||
#define xsettings_list_insert _gdk_x11_xsettings_list_insert
|
||||
#define xsettings_list_lookup _gdk_x11_xsettings_list_lookup
|
||||
#define xsettings_setting_copy _gdk_x11_xsettings_setting_copy
|
||||
#define xsettings_setting_equal _gdk_x11_xsettings_setting_equal
|
||||
#define xsettings_setting_free _gdk_x11_xsettings_setting_free
|
||||
|
||||
typedef GHashTable XSettingsList;
|
||||
|
||||
typedef struct _XSettingsBuffer XSettingsBuffer;
|
||||
typedef struct _XSettingsColor XSettingsColor;
|
||||
typedef struct _XSettingsSetting XSettingsSetting;
|
||||
|
||||
/* Types of settings possible. Enum values correspond to
|
||||
* protocol values.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
XSETTINGS_TYPE_INT = 0,
|
||||
XSETTINGS_TYPE_STRING = 1,
|
||||
XSETTINGS_TYPE_COLOR = 2
|
||||
} XSettingsType;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
XSETTINGS_SUCCESS,
|
||||
XSETTINGS_NO_MEM,
|
||||
XSETTINGS_ACCESS,
|
||||
XSETTINGS_FAILED,
|
||||
XSETTINGS_NO_ENTRY,
|
||||
XSETTINGS_DUPLICATE_ENTRY
|
||||
} XSettingsResult;
|
||||
|
||||
struct _XSettingsBuffer
|
||||
{
|
||||
char byte_order;
|
||||
size_t len;
|
||||
unsigned char *data;
|
||||
unsigned char *pos;
|
||||
};
|
||||
|
||||
struct _XSettingsColor
|
||||
{
|
||||
unsigned short red, green, blue, alpha;
|
||||
};
|
||||
|
||||
struct _XSettingsSetting
|
||||
{
|
||||
char *name;
|
||||
XSettingsType type;
|
||||
|
||||
union {
|
||||
int v_int;
|
||||
char *v_string;
|
||||
XSettingsColor v_color;
|
||||
} data;
|
||||
|
||||
unsigned long last_change_serial;
|
||||
};
|
||||
|
||||
XSettingsSetting *xsettings_setting_copy (XSettingsSetting *setting);
|
||||
void xsettings_setting_free (XSettingsSetting *setting);
|
||||
int xsettings_setting_equal (XSettingsSetting *setting_a,
|
||||
XSettingsSetting *setting_b);
|
||||
|
||||
void xsettings_list_free (XSettingsList *list);
|
||||
XSettingsResult xsettings_list_insert (XSettingsList **list,
|
||||
XSettingsSetting *setting);
|
||||
XSettingsSetting *xsettings_list_lookup (XSettingsList *list,
|
||||
const char *name);
|
||||
|
||||
char xsettings_byte_order (void);
|
||||
|
||||
#define XSETTINGS_PAD(n,m) ((n + m - 1) & (~(m-1)))
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* XSETTINGS_COMMON_H */
|
||||
@@ -422,6 +422,7 @@ gtk_private_h_sources = \
|
||||
gtkbitmaskprivateimpl.h \
|
||||
gtkborderimageprivate.h \
|
||||
gtkboxprivate.h \
|
||||
gtkbubblewindowprivate.h \
|
||||
gtkbuilderprivate.h \
|
||||
gtkbuttonprivate.h \
|
||||
gtkcairoblurprivate.h \
|
||||
@@ -621,6 +622,7 @@ gtk_base_c_sources = \
|
||||
gtkborder.c \
|
||||
gtkborderimage.c \
|
||||
gtkbox.c \
|
||||
gtkbubblewindow.c \
|
||||
gtkbuildable.c \
|
||||
gtkbuilder.c \
|
||||
gtkbuilderparser.c \
|
||||
|
||||
+16
-16
@@ -137,37 +137,37 @@ libgtka11y_la_LIBADD = \
|
||||
libgtka11y_la_LDFLAGS = \
|
||||
$(LDFLAGS)
|
||||
|
||||
dist-hook: ../../build/win32/vs9/libgail.vcproj ../../build/win32/vs10/libgail.vcxproj ../../build/win32/vs10/libgail.vcxproj.filters
|
||||
dist-hook: $(top_builddir)/build/win32/vs9/gtka11y.vcproj $(top_builddir)/build/win32/vs10/gtka11y.vcxproj $(top_builddir)/build/win32/vs10/gtka11y.vcxproj.filters
|
||||
|
||||
../../build/win32/vs9/libgail.vcproj: ../../build/win32/vs9/libgail.vcprojin
|
||||
for F in $(libgail_la_SOURCES); do \
|
||||
$(top_builddir)/build/win32/vs9/gtka11y.vcproj: $(top_srcdir)/build/win32/vs9/gtka11y.vcprojin
|
||||
for F in $(gtka11y_c_sources); do \
|
||||
case $$F in \
|
||||
*.c) echo ' <File RelativePath="..\..\..\gtk\a11y\'$$F'" />' \
|
||||
;; \
|
||||
esac; \
|
||||
done >libgail.sourcefiles
|
||||
$(CPP) -P - <$(top_srcdir)/build/win32/vs9/libgail.vcprojin >$@
|
||||
rm libgail.sourcefiles
|
||||
done >gtka11y.sourcefiles
|
||||
$(CPP) -P - <$(top_srcdir)/build/win32/vs9/gtka11y.vcprojin >$@
|
||||
rm gtka11y.sourcefiles
|
||||
|
||||
../../build/win32/vs10/libgail.vcxproj: ../../build/win32/vs10/libgail.vcxprojin
|
||||
for F in $(libgail_la_SOURCES); do \
|
||||
$(top_builddir)/build/win32/vs10/gtka11y.vcxproj: $(top_srcdir)/build/win32/vs10/gtka11y.vcxprojin
|
||||
for F in $(gtka11y_c_sources); do \
|
||||
case $$F in \
|
||||
*.c) echo ' <ClCompile Include="..\..\..\gtk\a11y\'$$F'" />' \
|
||||
;; \
|
||||
esac; \
|
||||
done >libgail.vs10.sourcefiles
|
||||
$(CPP) -P - <$(top_srcdir)/build/win32/vs10/libgail.vcxprojin >$@
|
||||
rm libgail.vs10.sourcefiles
|
||||
done >gtka11y.vs10.sourcefiles
|
||||
$(CPP) -P - <$(top_srcdir)/build/win32/vs10/gtka11y.vcxprojin >$@
|
||||
rm gtka11y.vs10.sourcefiles
|
||||
|
||||
../../build/win32/vs10/libgail.vcxproj.filters: ../../build/win32/vs10/libgail.vcxproj.filtersin
|
||||
for F in $(libgail_la_SOURCES); do \
|
||||
$(top_builddir)/build/win32/vs10/gtka11y.vcxproj.filters: $(top_srcdir)/build/win32/vs10/gtka11y.vcxproj.filtersin
|
||||
for F in $(gtka11y_c_sources); do \
|
||||
case $$F in \
|
||||
*.c) echo ' <ClCompile Include="..\..\..\gtk\a11y\'$$F'"><Filter>Source Files</Filter></ClCompile>' \
|
||||
;; \
|
||||
esac; \
|
||||
done >libgail.vs10.sourcefiles.filters
|
||||
$(CPP) -P - <$(top_srcdir)/build/win32/vs10/libgail.vcxproj.filtersin >$@
|
||||
rm libgail.vs10.sourcefiles.filters
|
||||
done >gtka11y.vs10.sourcefiles.filters
|
||||
$(CPP) -P - <$(top_srcdir)/build/win32/vs10/gtka11y.vcxproj.filtersin >$@
|
||||
rm gtka11y.vs10.sourcefiles.filters
|
||||
|
||||
|
||||
-include $(top_srcdir)/git.mk
|
||||
|
||||
@@ -412,7 +412,7 @@ _gtk_cell_accessible_state_changed (GtkCellAccessible *cell,
|
||||
atk_object_notify_state_change (object,
|
||||
state_map[i].atk_state,
|
||||
!state_map[i].invert);
|
||||
if (added & state_map[i].renderer_state)
|
||||
if (removed & state_map[i].renderer_state)
|
||||
atk_object_notify_state_change (object,
|
||||
state_map[i].atk_state,
|
||||
state_map[i].invert);
|
||||
|
||||
@@ -117,6 +117,11 @@ gtk_text_view_accessible_change_buffer (GtkTextViewAccessible *accessible,
|
||||
if (old_buffer)
|
||||
{
|
||||
g_signal_handlers_disconnect_matched (old_buffer, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, accessible);
|
||||
|
||||
g_signal_emit_by_name (accessible,
|
||||
"text-changed::delete",
|
||||
0,
|
||||
gtk_text_buffer_get_char_count (old_buffer));
|
||||
}
|
||||
|
||||
if (new_buffer)
|
||||
@@ -124,6 +129,11 @@ gtk_text_view_accessible_change_buffer (GtkTextViewAccessible *accessible,
|
||||
g_signal_connect_after (new_buffer, "insert-text", G_CALLBACK (insert_text_cb), accessible);
|
||||
g_signal_connect (new_buffer, "delete-range", G_CALLBACK (delete_range_cb), accessible);
|
||||
g_signal_connect_after (new_buffer, "mark-set", G_CALLBACK (mark_set_cb), accessible);
|
||||
|
||||
g_signal_emit_by_name (accessible,
|
||||
"text-changed::insert",
|
||||
0,
|
||||
gtk_text_buffer_get_char_count (new_buffer));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1896,6 +1896,7 @@ _gtk_tree_view_accessible_add_state (GtkTreeView *treeview,
|
||||
GtkCellRendererState state)
|
||||
{
|
||||
GtkTreeViewAccessible *accessible;
|
||||
GtkTreeViewColumn *single_column;
|
||||
AtkObject *obj;
|
||||
guint i;
|
||||
|
||||
@@ -1907,36 +1908,38 @@ _gtk_tree_view_accessible_add_state (GtkTreeView *treeview,
|
||||
|
||||
if (state == GTK_CELL_RENDERER_FOCUSED)
|
||||
{
|
||||
GtkTreeViewColumn *focus_column;
|
||||
|
||||
focus_column = get_effective_focus_column (treeview, _gtk_tree_view_get_focus_column (treeview));
|
||||
|
||||
if (focus_column)
|
||||
{
|
||||
GtkCellAccessible *cell;
|
||||
|
||||
cell = peek_cell (accessible, tree, node, focus_column);
|
||||
if (cell != NULL)
|
||||
_gtk_cell_accessible_state_changed (cell, 0, state);
|
||||
else
|
||||
cell = create_cell (treeview, accessible, tree, node, focus_column);
|
||||
|
||||
g_signal_emit_by_name (accessible, "active-descendant-changed", cell);
|
||||
}
|
||||
|
||||
return;
|
||||
single_column = get_effective_focus_column (treeview, _gtk_tree_view_get_focus_column (treeview));
|
||||
}
|
||||
else if (state == GTK_CELL_RENDERER_EXPANDED ||
|
||||
state == GTK_CELL_RENDERER_EXPANDABLE)
|
||||
{
|
||||
single_column = gtk_tree_view_get_expander_column (treeview);
|
||||
}
|
||||
else
|
||||
single_column = NULL;
|
||||
|
||||
for (i = 0; i < gtk_tree_view_get_n_columns (treeview); i++)
|
||||
if (single_column)
|
||||
{
|
||||
GtkCellAccessible *cell = peek_cell (accessible,
|
||||
tree, node,
|
||||
gtk_tree_view_get_column (treeview, i));
|
||||
single_column);
|
||||
|
||||
if (cell == NULL)
|
||||
continue;
|
||||
if (cell != NULL)
|
||||
_gtk_cell_accessible_state_changed (cell, state, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = 0; i < gtk_tree_view_get_n_columns (treeview); i++)
|
||||
{
|
||||
GtkCellAccessible *cell = peek_cell (accessible,
|
||||
tree, node,
|
||||
gtk_tree_view_get_column (treeview, i));
|
||||
|
||||
_gtk_cell_accessible_state_changed (cell, state, 0);
|
||||
if (cell == NULL)
|
||||
continue;
|
||||
|
||||
_gtk_cell_accessible_state_changed (cell, state, 0);
|
||||
}
|
||||
}
|
||||
|
||||
if (state == GTK_CELL_RENDERER_SELECTED)
|
||||
@@ -1950,6 +1953,7 @@ _gtk_tree_view_accessible_remove_state (GtkTreeView *treeview,
|
||||
GtkCellRendererState state)
|
||||
{
|
||||
GtkTreeViewAccessible *accessible;
|
||||
GtkTreeViewColumn *single_column;
|
||||
AtkObject *obj;
|
||||
guint i;
|
||||
|
||||
@@ -1961,33 +1965,38 @@ _gtk_tree_view_accessible_remove_state (GtkTreeView *treeview,
|
||||
|
||||
if (state == GTK_CELL_RENDERER_FOCUSED)
|
||||
{
|
||||
GtkTreeViewColumn *focus_column;
|
||||
|
||||
focus_column = get_effective_focus_column (treeview, _gtk_tree_view_get_focus_column (treeview));
|
||||
|
||||
if (focus_column)
|
||||
{
|
||||
GtkCellAccessible *cell = peek_cell (accessible,
|
||||
tree, node,
|
||||
focus_column);
|
||||
|
||||
if (cell != NULL)
|
||||
_gtk_cell_accessible_state_changed (cell, 0, state);
|
||||
}
|
||||
|
||||
return;
|
||||
single_column = get_effective_focus_column (treeview, _gtk_tree_view_get_focus_column (treeview));
|
||||
}
|
||||
else if (state == GTK_CELL_RENDERER_EXPANDED ||
|
||||
state == GTK_CELL_RENDERER_EXPANDABLE)
|
||||
{
|
||||
single_column = gtk_tree_view_get_expander_column (treeview);
|
||||
}
|
||||
else
|
||||
single_column = NULL;
|
||||
|
||||
for (i = 0; i < gtk_tree_view_get_n_columns (treeview); i++)
|
||||
if (single_column)
|
||||
{
|
||||
GtkCellAccessible *cell = peek_cell (accessible,
|
||||
tree, node,
|
||||
gtk_tree_view_get_column (treeview, i));
|
||||
single_column);
|
||||
|
||||
if (cell == NULL)
|
||||
continue;
|
||||
if (cell != NULL)
|
||||
_gtk_cell_accessible_state_changed (cell, 0, state);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = 0; i < gtk_tree_view_get_n_columns (treeview); i++)
|
||||
{
|
||||
GtkCellAccessible *cell = peek_cell (accessible,
|
||||
tree, node,
|
||||
gtk_tree_view_get_column (treeview, i));
|
||||
|
||||
_gtk_cell_accessible_state_changed (cell, 0, state);
|
||||
if (cell == NULL)
|
||||
continue;
|
||||
|
||||
_gtk_cell_accessible_state_changed (cell, 0, state);
|
||||
}
|
||||
}
|
||||
|
||||
if (state == GTK_CELL_RENDERER_SELECTED)
|
||||
|
||||
+23
-2
@@ -151,6 +151,8 @@ static void gtk_box_size_allocate (GtkWidget *widget,
|
||||
static void gtk_box_compute_expand (GtkWidget *widget,
|
||||
gboolean *hexpand,
|
||||
gboolean *vexpand);
|
||||
static void gtk_box_direction_changed (GtkWidget *widget,
|
||||
GtkTextDirection previous_direction);
|
||||
|
||||
static void gtk_box_set_property (GObject *object,
|
||||
guint prop_id,
|
||||
@@ -220,6 +222,7 @@ gtk_box_class_init (GtkBoxClass *class)
|
||||
widget_class->get_preferred_height_for_width = gtk_box_get_preferred_height_for_width;
|
||||
widget_class->get_preferred_width_for_height = gtk_box_get_preferred_width_for_height;
|
||||
widget_class->compute_expand = gtk_box_compute_expand;
|
||||
widget_class->direction_changed = gtk_box_direction_changed;
|
||||
|
||||
container_class->add = gtk_box_add;
|
||||
container_class->remove = gtk_box_remove;
|
||||
@@ -855,7 +858,9 @@ count_widget_position (GtkWidget *widget,
|
||||
|
||||
if (count->widget == widget)
|
||||
count->found = TRUE;
|
||||
else if (!count->found)
|
||||
else if (count->found)
|
||||
count->after++;
|
||||
else
|
||||
count->before++;
|
||||
}
|
||||
|
||||
@@ -877,7 +882,11 @@ gtk_box_get_visible_position (GtkBox *box,
|
||||
if (!count.found)
|
||||
return -1;
|
||||
|
||||
return count.before;
|
||||
if (box->priv->orientation == GTK_ORIENTATION_HORIZONTAL &&
|
||||
gtk_widget_get_direction (GTK_WIDGET (box)) == GTK_TEXT_DIR_RTL)
|
||||
return count.after;
|
||||
else
|
||||
return count.before;
|
||||
}
|
||||
|
||||
static GtkWidgetPath *
|
||||
@@ -886,9 +895,11 @@ gtk_box_get_path_for_child (GtkContainer *container,
|
||||
{
|
||||
GtkWidgetPath *path, *sibling_path;
|
||||
GtkBox *box;
|
||||
GtkBoxPrivate *private;
|
||||
GList *list, *children;
|
||||
|
||||
box = GTK_BOX (container);
|
||||
private = box->priv;
|
||||
|
||||
path = _gtk_widget_create_path (GTK_WIDGET (container));
|
||||
|
||||
@@ -900,6 +911,9 @@ gtk_box_get_path_for_child (GtkContainer *container,
|
||||
|
||||
/* get_children works in visible order */
|
||||
children = gtk_container_get_children (container);
|
||||
if (private->orientation == GTK_ORIENTATION_HORIZONTAL &&
|
||||
gtk_widget_get_direction (GTK_WIDGET (box)) == GTK_TEXT_DIR_RTL)
|
||||
children = g_list_reverse (children);
|
||||
|
||||
for (list = children; list; list = list->next)
|
||||
{
|
||||
@@ -940,6 +954,13 @@ gtk_box_invalidate_order (GtkBox *box)
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_box_direction_changed (GtkWidget *widget,
|
||||
GtkTextDirection previous_direction)
|
||||
{
|
||||
gtk_box_invalidate_order (GTK_BOX (widget));
|
||||
}
|
||||
|
||||
static void
|
||||
box_child_visibility_notify_cb (GObject *obj,
|
||||
GParamSpec *pspec,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,81 @@
|
||||
/* GTK - The GIMP Toolkit
|
||||
* Copyright © 2013 Carlos Garnacho <carlosg@gnome.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __GTK_BUBBLE_WINDOW_H__
|
||||
#define __GTK_BUBBLE_WINDOW_H__
|
||||
|
||||
#include <gtk/gtkwindow.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GTK_TYPE_BUBBLE_WINDOW (_gtk_bubble_window_get_type ())
|
||||
#define GTK_BUBBLE_WINDOW(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GTK_TYPE_BUBBLE_WINDOW, GtkBubbleWindow))
|
||||
#define GTK_BUBBLE_WINDOW_CLASS(c) (G_TYPE_CHECK_CLASS_CAST ((c), GTK_TYPE_BUBBLE_WINDOW, GtkBubbleWindowClass))
|
||||
#define GTK_IS_BUBBLE_WINDOW(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GTK_TYPE_BUBBLE_WINDOW))
|
||||
#define GTK_IS_BUBBLE_WINDOW_CLASS(o) (G_TYPE_CHECK_CLASS_TYPE ((o), GTK_TYPE_BUBBLE_WINDOW))
|
||||
#define GTK_BUBBLE_WINDOW_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GTK_TYPE_BUBBLE_WINDOW, GtkBubbleWindowClass))
|
||||
|
||||
typedef struct _GtkBubbleWindow GtkBubbleWindow;
|
||||
typedef struct _GtkBubbleWindowClass GtkBubbleWindowClass;
|
||||
|
||||
struct _GtkBubbleWindow
|
||||
{
|
||||
GtkWindow parent_instance;
|
||||
|
||||
/*< private >*/
|
||||
gpointer priv;
|
||||
};
|
||||
|
||||
struct _GtkBubbleWindowClass
|
||||
{
|
||||
GtkWindowClass parent_class;
|
||||
};
|
||||
|
||||
GType _gtk_bubble_window_get_type (void) G_GNUC_CONST;
|
||||
|
||||
GtkWidget * _gtk_bubble_window_new (void);
|
||||
|
||||
void _gtk_bubble_window_set_relative_to (GtkBubbleWindow *window,
|
||||
GdkWindow *relative_to);
|
||||
GdkWindow * _gtk_bubble_window_get_relative_to (GtkBubbleWindow *window);
|
||||
|
||||
void _gtk_bubble_window_set_pointing_to (GtkBubbleWindow *window,
|
||||
cairo_rectangle_int_t *rect);
|
||||
gboolean _gtk_bubble_window_get_pointing_to (GtkBubbleWindow *window,
|
||||
cairo_rectangle_int_t *rect);
|
||||
void _gtk_bubble_window_set_position (GtkBubbleWindow *window,
|
||||
GtkPositionType position);
|
||||
|
||||
GtkPositionType
|
||||
_gtk_bubble_window_get_position (GtkBubbleWindow *window);
|
||||
|
||||
void _gtk_bubble_window_popup (GtkBubbleWindow *window,
|
||||
GdkWindow *relative_to,
|
||||
cairo_rectangle_int_t *pointing_to,
|
||||
GtkPositionType position);
|
||||
|
||||
void _gtk_bubble_window_popdown (GtkBubbleWindow *window);
|
||||
|
||||
gboolean _gtk_bubble_window_grab (GtkBubbleWindow *window,
|
||||
GdkDevice *device,
|
||||
guint32 activate_time);
|
||||
|
||||
void _gtk_bubble_window_ungrab (GtkBubbleWindow *window);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GTK_BUBBLE_WINDOW_H__ */
|
||||
@@ -429,7 +429,7 @@ gtk_cell_renderer_class_init (GtkCellRendererClass *class)
|
||||
|
||||
g_type_class_add_private (class, sizeof (GtkCellRendererPrivate));
|
||||
|
||||
_gtk_cell_renderer_class_set_accessible_type (class, GTK_TYPE_RENDERER_CELL_ACCESSIBLE);
|
||||
gtk_cell_renderer_class_set_accessible_type (class, GTK_TYPE_RENDERER_CELL_ACCESSIBLE);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1781,8 +1781,8 @@ gtk_cell_renderer_get_state (GtkCellRenderer *cell,
|
||||
return state;
|
||||
}
|
||||
|
||||
/*
|
||||
* _gtk_cell_renderer_class_set_accessible_type:
|
||||
/**
|
||||
* gtk_cell_renderer_class_set_accessible_type:
|
||||
* @renderer_class: class to set the accessible type for
|
||||
* @type: The object type that implements the accessible for @widget_class.
|
||||
* The type must be a subtype of #GtkRendererCellAccessible
|
||||
@@ -1795,8 +1795,8 @@ gtk_cell_renderer_get_state (GtkCellRenderer *cell,
|
||||
* renderers.
|
||||
**/
|
||||
void
|
||||
_gtk_cell_renderer_class_set_accessible_type (GtkCellRendererClass *renderer_class,
|
||||
GType type)
|
||||
gtk_cell_renderer_class_set_accessible_type (GtkCellRendererClass *renderer_class,
|
||||
GType type)
|
||||
{
|
||||
GtkCellRendererClassPrivate *priv;
|
||||
|
||||
|
||||
@@ -269,7 +269,7 @@ GtkStateFlags gtk_cell_renderer_get_state (GtkCellRenderer *cell,
|
||||
GtkWidget *widget,
|
||||
GtkCellRendererState cell_state);
|
||||
|
||||
void _gtk_cell_renderer_class_set_accessible_type
|
||||
void gtk_cell_renderer_class_set_accessible_type
|
||||
(GtkCellRendererClass *renderer_class,
|
||||
GType type);
|
||||
GType _gtk_cell_renderer_get_accessible_type
|
||||
|
||||
@@ -251,7 +251,7 @@ gtk_cell_renderer_pixbuf_class_init (GtkCellRendererPixbufClass *class)
|
||||
|
||||
g_type_class_add_private (object_class, sizeof (GtkCellRendererPixbufPrivate));
|
||||
|
||||
_gtk_cell_renderer_class_set_accessible_type (cell_class, GTK_TYPE_IMAGE_CELL_ACCESSIBLE);
|
||||
gtk_cell_renderer_class_set_accessible_type (cell_class, GTK_TYPE_IMAGE_CELL_ACCESSIBLE);
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
@@ -731,7 +731,7 @@ gtk_cell_renderer_text_class_init (GtkCellRendererTextClass *class)
|
||||
|
||||
g_type_class_add_private (object_class, sizeof (GtkCellRendererTextPrivate));
|
||||
|
||||
_gtk_cell_renderer_class_set_accessible_type (cell_class, GTK_TYPE_TEXT_CELL_ACCESSIBLE);
|
||||
gtk_cell_renderer_class_set_accessible_type (cell_class, GTK_TYPE_TEXT_CELL_ACCESSIBLE);
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
@@ -196,7 +196,7 @@ gtk_cell_renderer_toggle_class_init (GtkCellRendererToggleClass *class)
|
||||
|
||||
g_type_class_add_private (object_class, sizeof (GtkCellRendererTogglePrivate));
|
||||
|
||||
_gtk_cell_renderer_class_set_accessible_type (cell_class, GTK_TYPE_BOOLEAN_CELL_ACCESSIBLE);
|
||||
gtk_cell_renderer_class_set_accessible_type (cell_class, GTK_TYPE_BOOLEAN_CELL_ACCESSIBLE);
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
@@ -468,6 +468,8 @@ static void gtk_combo_box_get_preferred_height_for_width (GtkWidget *widg
|
||||
gint *natural_size);
|
||||
static GtkWidgetPath *gtk_combo_box_get_path_for_child (GtkContainer *container,
|
||||
GtkWidget *child);
|
||||
static void gtk_combo_box_direction_changed (GtkWidget *widget,
|
||||
GtkTextDirection previous_direction);
|
||||
|
||||
G_DEFINE_TYPE_WITH_CODE (GtkComboBox, gtk_combo_box, GTK_TYPE_BIN,
|
||||
G_IMPLEMENT_INTERFACE (GTK_TYPE_CELL_LAYOUT,
|
||||
@@ -508,6 +510,7 @@ gtk_combo_box_class_init (GtkComboBoxClass *klass)
|
||||
widget_class->get_preferred_height_for_width = gtk_combo_box_get_preferred_height_for_width;
|
||||
widget_class->get_preferred_width_for_height = gtk_combo_box_get_preferred_width_for_height;
|
||||
widget_class->destroy = gtk_combo_box_destroy;
|
||||
widget_class->direction_changed = gtk_combo_box_direction_changed;
|
||||
|
||||
object_class = (GObjectClass *)klass;
|
||||
object_class->constructor = gtk_combo_box_constructor;
|
||||
@@ -1379,6 +1382,27 @@ gtk_combo_box_button_state_flags_changed (GtkWidget *widget,
|
||||
gtk_widget_queue_draw (widget);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_combo_box_invalidate_order_foreach (GtkWidget *widget)
|
||||
{
|
||||
_gtk_widget_invalidate_style_context (widget, GTK_CSS_CHANGE_POSITION | GTK_CSS_CHANGE_SIBLING_POSITION);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_combo_box_invalidate_order (GtkComboBox *combo_box)
|
||||
{
|
||||
gtk_container_forall (GTK_CONTAINER (combo_box),
|
||||
(GtkCallback) gtk_combo_box_invalidate_order_foreach,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_combo_box_direction_changed (GtkWidget *widget,
|
||||
GtkTextDirection previous_direction)
|
||||
{
|
||||
gtk_combo_box_invalidate_order (GTK_COMBO_BOX (widget));
|
||||
}
|
||||
|
||||
static GtkWidgetPath *
|
||||
gtk_combo_box_get_path_for_child (GtkContainer *container,
|
||||
GtkWidget *child)
|
||||
@@ -1407,6 +1431,9 @@ gtk_combo_box_get_path_for_child (GtkContainer *container,
|
||||
if (widget && gtk_widget_get_visible (widget))
|
||||
visible_children = g_list_prepend (visible_children, widget);
|
||||
|
||||
if (gtk_widget_get_direction (GTK_WIDGET (container)) == GTK_TEXT_DIR_RTL)
|
||||
visible_children = g_list_reverse (visible_children);
|
||||
|
||||
pos = 0;
|
||||
|
||||
for (l = visible_children; l; l = l->next)
|
||||
|
||||
+1
-1
@@ -360,7 +360,7 @@ gtk_drag_get_ipc_widget_for_screen (GdkScreen *screen)
|
||||
result = gtk_window_new (GTK_WINDOW_POPUP);
|
||||
gtk_window_set_screen (GTK_WINDOW (result), screen);
|
||||
gtk_window_resize (GTK_WINDOW (result), 1, 1);
|
||||
gtk_window_move (GTK_WINDOW (result), -100, -100);
|
||||
gtk_window_move (GTK_WINDOW (result), -99, -99);
|
||||
gtk_widget_show (result);
|
||||
}
|
||||
|
||||
|
||||
+230
-13
@@ -66,6 +66,8 @@
|
||||
#include "gtkwidgetprivate.h"
|
||||
#include "gtkstylecontextprivate.h"
|
||||
#include "gtktexthandleprivate.h"
|
||||
#include "gtkbubblewindowprivate.h"
|
||||
#include "gtktoolbar.h"
|
||||
|
||||
#include "a11y/gtkentryaccessible.h"
|
||||
|
||||
@@ -158,7 +160,10 @@ struct _GtkEntryPrivate
|
||||
|
||||
gchar *placeholder_text;
|
||||
|
||||
GtkBubbleWindow *bubble_window;
|
||||
GtkTextHandle *text_handle;
|
||||
GtkWidget *selection_bubble;
|
||||
guint selection_bubble_timeout_id;
|
||||
|
||||
gfloat xalign;
|
||||
|
||||
@@ -218,6 +223,7 @@ struct _GtkEntryPrivate
|
||||
guint truncate_multiline : 1;
|
||||
guint cursor_handle_dragged : 1;
|
||||
guint selection_handle_dragged : 1;
|
||||
guint populate_all : 1;
|
||||
};
|
||||
|
||||
struct _EntryIconInfo
|
||||
@@ -314,7 +320,8 @@ enum {
|
||||
PROP_COMPLETION,
|
||||
PROP_INPUT_PURPOSE,
|
||||
PROP_INPUT_HINTS,
|
||||
PROP_ATTRIBUTES
|
||||
PROP_ATTRIBUTES,
|
||||
PROP_POPULATE_ALL
|
||||
};
|
||||
|
||||
static guint signals[LAST_SIGNAL] = { 0 };
|
||||
@@ -592,6 +599,12 @@ static void gtk_entry_handle_dragged (GtkTextHandle *h
|
||||
gint x,
|
||||
gint y,
|
||||
GtkEntry *entry);
|
||||
static void gtk_entry_handle_drag_finished (GtkTextHandle *handle,
|
||||
GtkTextHandlePosition pos,
|
||||
GtkEntry *entry);
|
||||
|
||||
static void gtk_entry_selection_bubble_popup_set (GtkEntry *entry);
|
||||
static void gtk_entry_selection_bubble_popup_unset (GtkEntry *entry);
|
||||
|
||||
static void begin_change (GtkEntry *entry);
|
||||
static void end_change (GtkEntry *entry);
|
||||
@@ -1412,6 +1425,21 @@ gtk_entry_class_init (GtkEntryClass *class)
|
||||
PANGO_TYPE_ATTR_LIST,
|
||||
GTK_PARAM_READWRITE));
|
||||
|
||||
/** GtkEntry:populate-all:
|
||||
*
|
||||
* If ::populate-all is %TRUE, the #GtkEntry::populate-popup
|
||||
* signal is also emitted for touch popups.
|
||||
*
|
||||
* Since: 3.8
|
||||
*/
|
||||
g_object_class_install_property (gobject_class,
|
||||
PROP_POPULATE_ALL,
|
||||
g_param_spec_boolean ("populate-all",
|
||||
P_("Populate all"),
|
||||
P_("Whether to emit ::populate-popup for touch popups"),
|
||||
FALSE,
|
||||
GTK_PARAM_READWRITE));
|
||||
|
||||
/**
|
||||
* GtkEntry:icon-prelight:
|
||||
*
|
||||
@@ -1470,13 +1498,20 @@ gtk_entry_class_init (GtkEntryClass *class)
|
||||
/**
|
||||
* GtkEntry::populate-popup:
|
||||
* @entry: The entry on which the signal is emitted
|
||||
* @menu: the menu that is being populated
|
||||
* @popup: the container that is being populated
|
||||
*
|
||||
* The ::populate-popup signal gets emitted before showing the
|
||||
* context menu of the entry.
|
||||
* The ::populate-popup signal gets emitted before showing the
|
||||
* context menu of the entry.
|
||||
*
|
||||
* If you need to add items to the context menu, connect
|
||||
* to this signal and append your menuitems to the @menu.
|
||||
* to this signal and append your items to the @widget, which
|
||||
* will be a #GtkMenu in this case.
|
||||
*
|
||||
* If #GtkEntry::populate-all is %TRUE, this signal will
|
||||
* also be emitted to populate touch popups. In this case,
|
||||
* @widget will be a different container, e.g. a #GtkToolbar.
|
||||
* The signal handler should not make assumptions about the
|
||||
* type of @widget.
|
||||
*/
|
||||
signals[POPULATE_POPUP] =
|
||||
g_signal_new (I_("populate-popup"),
|
||||
@@ -1486,7 +1521,7 @@ gtk_entry_class_init (GtkEntryClass *class)
|
||||
NULL, NULL,
|
||||
_gtk_marshal_VOID__OBJECT,
|
||||
G_TYPE_NONE, 1,
|
||||
GTK_TYPE_MENU);
|
||||
GTK_TYPE_WIDGET);
|
||||
|
||||
/* Action signals */
|
||||
|
||||
@@ -2228,6 +2263,10 @@ gtk_entry_set_property (GObject *object,
|
||||
gtk_entry_set_attributes (entry, g_value_get_boxed (value));
|
||||
break;
|
||||
|
||||
case PROP_POPULATE_ALL:
|
||||
entry->priv->populate_all = g_value_get_boolean (value);
|
||||
break;
|
||||
|
||||
case PROP_SCROLL_OFFSET:
|
||||
case PROP_CURSOR_POSITION:
|
||||
default:
|
||||
@@ -2464,6 +2503,10 @@ gtk_entry_get_property (GObject *object,
|
||||
g_value_set_boxed (value, priv->attrs);
|
||||
break;
|
||||
|
||||
case PROP_POPULATE_ALL:
|
||||
g_value_set_boolean (value, priv->populate_all);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
@@ -2575,6 +2618,8 @@ gtk_entry_init (GtkEntry *entry)
|
||||
priv->text_handle = _gtk_text_handle_new (GTK_WIDGET (entry));
|
||||
g_signal_connect (priv->text_handle, "handle-dragged",
|
||||
G_CALLBACK (gtk_entry_handle_dragged), entry);
|
||||
g_signal_connect (priv->text_handle, "drag-finished",
|
||||
G_CALLBACK (gtk_entry_handle_drag_finished), entry);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -2811,6 +2856,9 @@ gtk_entry_finalize (GObject *object)
|
||||
if (priv->recompute_idle)
|
||||
g_source_remove (priv->recompute_idle);
|
||||
|
||||
if (priv->selection_bubble)
|
||||
gtk_widget_destroy (priv->selection_bubble);
|
||||
|
||||
g_object_unref (priv->text_handle);
|
||||
g_free (priv->placeholder_text);
|
||||
g_free (priv->im_module);
|
||||
@@ -4018,6 +4066,8 @@ gtk_entry_button_press (GtkWidget *widget,
|
||||
gint sel_start, sel_end;
|
||||
gint i;
|
||||
|
||||
gtk_entry_selection_bubble_popup_unset (entry);
|
||||
|
||||
for (i = 0; i < MAX_ICONS; i++)
|
||||
{
|
||||
icon_info = priv->icons[i];
|
||||
@@ -4222,6 +4272,8 @@ gtk_entry_button_release (GtkWidget *widget,
|
||||
GtkEntry *entry = GTK_ENTRY (widget);
|
||||
GtkEntryPrivate *priv = entry->priv;
|
||||
EntryIconInfo *icon_info = NULL;
|
||||
gboolean is_touchscreen;
|
||||
GdkDevice *source;
|
||||
gint i;
|
||||
|
||||
for (i = 0; i < MAX_ICONS; i++)
|
||||
@@ -4254,21 +4306,23 @@ gtk_entry_button_release (GtkWidget *widget,
|
||||
if (event->window != priv->text_area || priv->button != event->button)
|
||||
return FALSE;
|
||||
|
||||
source = gdk_event_get_source_device ((GdkEvent *) event);
|
||||
is_touchscreen = (test_touchscreen ||
|
||||
gdk_device_get_source (source) == GDK_SOURCE_TOUCHSCREEN);
|
||||
|
||||
if (priv->in_drag)
|
||||
{
|
||||
gint tmp_pos = gtk_entry_find_position (entry, priv->drag_start_x);
|
||||
GdkDevice *source;
|
||||
|
||||
gtk_editable_set_position (GTK_EDITABLE (entry), tmp_pos);
|
||||
|
||||
source = gdk_event_get_source_device ((GdkEvent *) event);
|
||||
|
||||
if (test_touchscreen ||
|
||||
gdk_device_get_source (source) == GDK_SOURCE_TOUCHSCREEN)
|
||||
if (is_touchscreen)
|
||||
gtk_entry_update_handles (entry, GTK_TEXT_HANDLE_MODE_CURSOR);
|
||||
|
||||
priv->in_drag = 0;
|
||||
}
|
||||
else if (is_touchscreen)
|
||||
gtk_entry_selection_bubble_popup_set (entry);
|
||||
|
||||
priv->button = 0;
|
||||
priv->device = NULL;
|
||||
@@ -4492,8 +4546,12 @@ gtk_entry_key_press (GtkWidget *widget,
|
||||
|
||||
gtk_entry_reset_blink_time (entry);
|
||||
gtk_entry_pend_cursor_blink (entry);
|
||||
_gtk_text_handle_set_mode (priv->text_handle,
|
||||
GTK_TEXT_HANDLE_MODE_NONE);
|
||||
|
||||
gtk_entry_selection_bubble_popup_unset (entry);
|
||||
|
||||
if (!event->send_event)
|
||||
_gtk_text_handle_set_mode (priv->text_handle,
|
||||
GTK_TEXT_HANDLE_MODE_NONE);
|
||||
|
||||
if (priv->editable)
|
||||
{
|
||||
@@ -4588,6 +4646,7 @@ gtk_entry_focus_out (GtkWidget *widget,
|
||||
GtkEntryCompletion *completion;
|
||||
GdkKeymap *keymap;
|
||||
|
||||
gtk_entry_selection_bubble_popup_unset (entry);
|
||||
_gtk_text_handle_set_mode (priv->text_handle,
|
||||
GTK_TEXT_HANDLE_MODE_NONE);
|
||||
|
||||
@@ -5497,6 +5556,8 @@ gtk_entry_cut_clipboard (GtkEntry *entry)
|
||||
{
|
||||
gtk_widget_error_bell (GTK_WIDGET (entry));
|
||||
}
|
||||
|
||||
gtk_entry_selection_bubble_popup_unset (entry);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -6225,6 +6286,8 @@ gtk_entry_handle_dragged (GtkTextHandle *handle,
|
||||
GtkTextHandleMode mode;
|
||||
gint *min, *max;
|
||||
|
||||
gtk_entry_selection_bubble_popup_unset (entry);
|
||||
|
||||
cursor_pos = priv->current_pos;
|
||||
selection_bound_pos = priv->selection_bound;
|
||||
mode = _gtk_text_handle_get_mode (handle);
|
||||
@@ -6277,6 +6340,15 @@ gtk_entry_handle_dragged (GtkTextHandle *handle,
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_entry_handle_drag_finished (GtkTextHandle *handle,
|
||||
GtkTextHandlePosition pos,
|
||||
GtkEntry *entry)
|
||||
{
|
||||
gtk_entry_selection_bubble_popup_set (entry);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* gtk_entry_reset_im_context:
|
||||
* @entry: a #GtkEntry
|
||||
@@ -9217,6 +9289,151 @@ gtk_entry_popup_menu (GtkWidget *widget)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
activate_bubble_cb (GtkWidget *item,
|
||||
GtkEntry *entry)
|
||||
{
|
||||
const gchar *signal = g_object_get_data (G_OBJECT (item), "gtk-signal");
|
||||
g_signal_emit_by_name (entry, signal);
|
||||
_gtk_bubble_window_popdown (GTK_BUBBLE_WINDOW (entry->priv->selection_bubble));
|
||||
}
|
||||
|
||||
static void
|
||||
append_bubble_action (GtkEntry *entry,
|
||||
GtkWidget *toolbar,
|
||||
const gchar *stock_id,
|
||||
const gchar *signal,
|
||||
gboolean sensitive)
|
||||
{
|
||||
GtkToolItem *item = gtk_tool_button_new_from_stock (stock_id);
|
||||
g_object_set_data (G_OBJECT (item), I_("gtk-signal"), (char *)signal);
|
||||
g_signal_connect (item, "clicked", G_CALLBACK (activate_bubble_cb), entry);
|
||||
gtk_widget_set_sensitive (GTK_WIDGET (item), sensitive);
|
||||
gtk_widget_show (GTK_WIDGET (item));
|
||||
gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1);
|
||||
}
|
||||
|
||||
static void
|
||||
bubble_targets_received (GtkClipboard *clipboard,
|
||||
GtkSelectionData *data,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkEntry *entry = user_data;
|
||||
GtkEntryPrivate *priv = entry->priv;
|
||||
cairo_rectangle_int_t rect;
|
||||
GtkAllocation allocation;
|
||||
gint start_x, end_x;
|
||||
gboolean has_selection;
|
||||
gboolean has_clipboard;
|
||||
DisplayMode mode;
|
||||
GtkWidget *toolbar;
|
||||
|
||||
has_selection = gtk_editable_get_selection_bounds (GTK_EDITABLE (entry),
|
||||
NULL, NULL);
|
||||
if (!has_selection && !priv->editable)
|
||||
{
|
||||
priv->selection_bubble_timeout_id = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (priv->selection_bubble)
|
||||
gtk_widget_destroy (priv->selection_bubble);
|
||||
|
||||
priv->selection_bubble = _gtk_bubble_window_new ();
|
||||
toolbar = GTK_WIDGET (gtk_toolbar_new ());
|
||||
gtk_toolbar_set_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_TEXT);
|
||||
gtk_toolbar_set_show_arrow (GTK_TOOLBAR (toolbar), FALSE);
|
||||
gtk_widget_show (toolbar);
|
||||
gtk_container_add (GTK_CONTAINER (priv->selection_bubble), toolbar);
|
||||
|
||||
has_clipboard = gtk_selection_data_targets_include_text (data);
|
||||
mode = gtk_entry_get_display_mode (entry);
|
||||
|
||||
append_bubble_action (entry, toolbar, GTK_STOCK_CUT, "cut-clipboard",
|
||||
priv->editable && has_selection && mode == DISPLAY_NORMAL);
|
||||
|
||||
append_bubble_action (entry, toolbar, GTK_STOCK_COPY, "copy-clipboard",
|
||||
has_selection && mode == DISPLAY_NORMAL);
|
||||
|
||||
append_bubble_action (entry, toolbar, GTK_STOCK_PASTE, "paste-clipboard",
|
||||
priv->editable && has_clipboard);
|
||||
|
||||
if (priv->populate_all)
|
||||
g_signal_emit (entry, signals[POPULATE_POPUP], 0, toolbar);
|
||||
|
||||
gtk_widget_get_allocation (GTK_WIDGET (entry), &allocation);
|
||||
|
||||
gtk_entry_get_cursor_locations (entry, CURSOR_STANDARD, &start_x, NULL);
|
||||
|
||||
start_x -= priv->scroll_offset;
|
||||
start_x = CLAMP (start_x, 0, gdk_window_get_width (priv->text_area));
|
||||
|
||||
rect.y = 0;
|
||||
rect.height = gdk_window_get_height (priv->text_area);
|
||||
|
||||
if (has_selection)
|
||||
{
|
||||
end_x = gtk_entry_get_selection_bound_location (entry) - priv->scroll_offset;
|
||||
end_x = CLAMP (end_x, 0, gdk_window_get_width (priv->text_area));
|
||||
|
||||
rect.x = MIN (start_x, end_x);
|
||||
rect.width = MAX (start_x, end_x) - rect.x;
|
||||
}
|
||||
else
|
||||
{
|
||||
rect.x = start_x;
|
||||
rect.width = 0;
|
||||
}
|
||||
|
||||
_gtk_bubble_window_popup (GTK_BUBBLE_WINDOW (priv->selection_bubble),
|
||||
priv->text_area, &rect, GTK_POS_TOP);
|
||||
|
||||
priv->selection_bubble_timeout_id = 0;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gtk_entry_selection_bubble_popup_cb (gpointer user_data)
|
||||
{
|
||||
GtkEntry *entry = user_data;
|
||||
|
||||
gtk_clipboard_request_contents (gtk_widget_get_clipboard (GTK_WIDGET (entry), GDK_SELECTION_CLIPBOARD),
|
||||
gdk_atom_intern_static_string ("TARGETS"),
|
||||
bubble_targets_received,
|
||||
entry);
|
||||
return G_SOURCE_REMOVE;
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_entry_selection_bubble_popup_unset (GtkEntry *entry)
|
||||
{
|
||||
GtkEntryPrivate *priv;
|
||||
|
||||
priv = entry->priv;
|
||||
|
||||
if (priv->selection_bubble)
|
||||
_gtk_bubble_window_popdown (GTK_BUBBLE_WINDOW (priv->selection_bubble));
|
||||
|
||||
if (priv->selection_bubble_timeout_id)
|
||||
{
|
||||
g_source_remove (priv->selection_bubble_timeout_id);
|
||||
priv->selection_bubble_timeout_id = 0;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_entry_selection_bubble_popup_set (GtkEntry *entry)
|
||||
{
|
||||
GtkEntryPrivate *priv;
|
||||
|
||||
priv = entry->priv;
|
||||
|
||||
if (priv->selection_bubble_timeout_id)
|
||||
g_source_remove (priv->selection_bubble_timeout_id);
|
||||
|
||||
priv->selection_bubble_timeout_id =
|
||||
gdk_threads_add_timeout (1000, gtk_entry_selection_bubble_popup_cb, entry);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_entry_drag_begin (GtkWidget *widget,
|
||||
GdkDragContext *context)
|
||||
|
||||
+1
-1
@@ -85,7 +85,7 @@ struct _GtkEntryClass
|
||||
|
||||
/* Hook to customize right-click popup */
|
||||
void (* populate_popup) (GtkEntry *entry,
|
||||
GtkMenu *menu);
|
||||
GtkWidget *popup);
|
||||
|
||||
/* Action signals
|
||||
*/
|
||||
|
||||
@@ -488,7 +488,6 @@ typedef enum
|
||||
* The Ctrl key may be used to enlarge the selection, and Shift
|
||||
* key to select between the focus and the child pointed to.
|
||||
* Some widgets may also allow Click-drag to select a range of elements.
|
||||
* @GTK_SELECTION_EXTENDED: Deprecated, behaves identical to %GTK_SELECTION_MULTIPLE.
|
||||
*
|
||||
* Used to control what selections users are allowed to make.
|
||||
*/
|
||||
|
||||
+13
-26
@@ -652,8 +652,6 @@ gtk_file_chooser_button_select_file (GtkFileChooser *chooser,
|
||||
|
||||
priv->selection_while_inactive = g_object_ref (file);
|
||||
|
||||
g_signal_emit (button, file_chooser_button_signals[FILE_SET], 0);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
@@ -680,8 +678,6 @@ gtk_file_chooser_button_unselect_file (GtkFileChooser *chooser,
|
||||
g_object_unref (priv->selection_while_inactive);
|
||||
priv->selection_while_inactive = NULL;
|
||||
}
|
||||
|
||||
g_signal_emit (button, file_chooser_button_signals[FILE_SET], 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -705,8 +701,6 @@ gtk_file_chooser_button_unselect_all (GtkFileChooser *chooser)
|
||||
g_object_unref (priv->selection_while_inactive);
|
||||
priv->selection_while_inactive = NULL;
|
||||
}
|
||||
|
||||
g_signal_emit (button, file_chooser_button_signals[FILE_SET], 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2352,13 +2346,13 @@ static void
|
||||
update_combo_box (GtkFileChooserButton *button)
|
||||
{
|
||||
GtkFileChooserButtonPrivate *priv = button->priv;
|
||||
GSList *files;
|
||||
GFile *file;
|
||||
GtkTreeIter iter;
|
||||
gboolean row_found;
|
||||
|
||||
gtk_tree_model_get_iter_first (priv->filter_model, &iter);
|
||||
|
||||
files = gtk_file_chooser_get_files (GTK_FILE_CHOOSER (priv->dialog));
|
||||
file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (priv->dialog));
|
||||
|
||||
row_found = FALSE;
|
||||
|
||||
@@ -2381,9 +2375,7 @@ update_combo_box (GtkFileChooserButton *button)
|
||||
case ROW_TYPE_SHORTCUT:
|
||||
case ROW_TYPE_BOOKMARK:
|
||||
case ROW_TYPE_CURRENT_FOLDER:
|
||||
row_found = (files &&
|
||||
files->data &&
|
||||
g_file_equal (data, files->data));
|
||||
row_found = (file && g_file_equal (data, file));
|
||||
break;
|
||||
case ROW_TYPE_VOLUME:
|
||||
{
|
||||
@@ -2392,9 +2384,7 @@ update_combo_box (GtkFileChooserButton *button)
|
||||
base_file = _gtk_file_system_volume_get_root (data);
|
||||
if (base_file)
|
||||
{
|
||||
row_found = (files &&
|
||||
files->data &&
|
||||
g_file_equal (base_file, files->data));
|
||||
row_found = (file && g_file_equal (base_file, file));
|
||||
g_object_unref (base_file);
|
||||
}
|
||||
}
|
||||
@@ -2416,12 +2406,12 @@ update_combo_box (GtkFileChooserButton *button)
|
||||
while (!row_found && gtk_tree_model_iter_next (priv->filter_model, &iter));
|
||||
|
||||
/* If it hasn't been found already, update & select the current-folder row. */
|
||||
if (!row_found && files && files->data)
|
||||
if (!row_found && file)
|
||||
{
|
||||
GtkTreeIter filter_iter;
|
||||
gint pos;
|
||||
|
||||
model_update_current_folder (button, files->data);
|
||||
model_update_current_folder (button, file);
|
||||
gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (priv->filter_model));
|
||||
|
||||
pos = model_get_type_position (button, ROW_TYPE_CURRENT_FOLDER);
|
||||
@@ -2435,8 +2425,8 @@ update_combo_box (GtkFileChooserButton *button)
|
||||
g_signal_handler_unblock (priv->combo_box, priv->combo_box_changed_id);
|
||||
}
|
||||
|
||||
g_slist_foreach (files, (GFunc) g_object_unref, NULL);
|
||||
g_slist_free (files);
|
||||
if (file)
|
||||
g_object_unref (file);
|
||||
}
|
||||
|
||||
/* Button */
|
||||
@@ -2482,9 +2472,9 @@ update_label_and_image (GtkFileChooserButton *button)
|
||||
{
|
||||
GtkFileChooserButtonPrivate *priv = button->priv;
|
||||
gchar *label_text;
|
||||
GSList *files;
|
||||
GFile *file;
|
||||
|
||||
files = gtk_file_chooser_get_files (GTK_FILE_CHOOSER (priv->dialog));
|
||||
file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (priv->dialog));
|
||||
label_text = NULL;
|
||||
|
||||
if (priv->update_button_cancellable)
|
||||
@@ -2493,13 +2483,10 @@ update_label_and_image (GtkFileChooserButton *button)
|
||||
priv->update_button_cancellable = NULL;
|
||||
}
|
||||
|
||||
if (files && files->data)
|
||||
if (file)
|
||||
{
|
||||
GFile *file;
|
||||
GtkFileSystemVolume *volume = NULL;
|
||||
|
||||
file = files->data;
|
||||
|
||||
volume = _gtk_file_system_get_volume_for_file (priv->fs, file);
|
||||
if (volume)
|
||||
{
|
||||
@@ -2549,10 +2536,10 @@ update_label_and_image (GtkFileChooserButton *button)
|
||||
if (pixbuf)
|
||||
g_object_unref (pixbuf);
|
||||
}
|
||||
|
||||
g_object_unref (file);
|
||||
}
|
||||
out:
|
||||
g_slist_foreach (files, (GFunc) g_object_unref, NULL);
|
||||
g_slist_free (files);
|
||||
|
||||
if (label_text)
|
||||
{
|
||||
|
||||
@@ -392,7 +392,7 @@ static void remove_bookmark_button_clicked_cb (GtkButton *button,
|
||||
|
||||
static void update_cell_renderer_attributes (GtkFileChooserDefault *impl);
|
||||
|
||||
static void load_remove_timer (GtkFileChooserDefault *impl);
|
||||
static void load_remove_timer (GtkFileChooserDefault *impl, LoadState new_load_state);
|
||||
static void browse_files_center_selected_row (GtkFileChooserDefault *impl);
|
||||
|
||||
static void location_button_toggled_cb (GtkToggleButton *toggle,
|
||||
@@ -6316,9 +6316,9 @@ load_setup_timer (GtkFileChooserDefault *impl)
|
||||
impl->load_state = LOAD_PRELOAD;
|
||||
}
|
||||
|
||||
/* Removes the load timeout and switches to the LOAD_FINISHED state */
|
||||
/* Removes the load timeout; changes the impl->load_state to the specified value. */
|
||||
static void
|
||||
load_remove_timer (GtkFileChooserDefault *impl)
|
||||
load_remove_timer (GtkFileChooserDefault *impl, LoadState new_load_state)
|
||||
{
|
||||
if (impl->load_timeout_id != 0)
|
||||
{
|
||||
@@ -6326,12 +6326,16 @@ load_remove_timer (GtkFileChooserDefault *impl)
|
||||
|
||||
g_source_remove (impl->load_timeout_id);
|
||||
impl->load_timeout_id = 0;
|
||||
impl->load_state = LOAD_EMPTY;
|
||||
}
|
||||
else
|
||||
g_assert (impl->load_state == LOAD_EMPTY ||
|
||||
impl->load_state == LOAD_LOADING ||
|
||||
impl->load_state == LOAD_FINISHED);
|
||||
|
||||
g_assert (new_load_state == LOAD_EMPTY ||
|
||||
new_load_state == LOAD_LOADING ||
|
||||
new_load_state == LOAD_FINISHED);
|
||||
impl->load_state = new_load_state;
|
||||
}
|
||||
|
||||
/* Selects the first row in the file list */
|
||||
@@ -6404,9 +6408,14 @@ show_and_select_files (GtkFileChooserDefault *impl,
|
||||
gboolean selected_a_file;
|
||||
GSList *walk;
|
||||
|
||||
g_assert (impl->load_state == LOAD_FINISHED);
|
||||
g_assert (impl->browse_files_model != NULL);
|
||||
|
||||
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (impl->browse_files_tree_view));
|
||||
fsmodel = GTK_FILE_SYSTEM_MODEL (gtk_tree_view_get_model (GTK_TREE_VIEW (impl->browse_files_tree_view)));
|
||||
|
||||
g_assert (fsmodel == impl->browse_files_model);
|
||||
|
||||
enabled_hidden = impl->show_hidden;
|
||||
removed_filters = (impl->current_filter == NULL);
|
||||
|
||||
@@ -6541,7 +6550,7 @@ browse_files_model_finished_loading_cb (GtkFileSystemModel *model,
|
||||
|
||||
if (impl->load_state == LOAD_PRELOAD)
|
||||
{
|
||||
load_remove_timer (impl);
|
||||
load_remove_timer (impl, LOAD_FINISHED);
|
||||
load_set_model (impl);
|
||||
}
|
||||
else if (impl->load_state == LOAD_LOADING)
|
||||
@@ -6574,7 +6583,7 @@ static void
|
||||
stop_loading_and_clear_list_model (GtkFileChooserDefault *impl,
|
||||
gboolean remove_from_treeview)
|
||||
{
|
||||
load_remove_timer (impl); /* This changes the state to LOAD_EMPTY */
|
||||
load_remove_timer (impl, LOAD_EMPTY);
|
||||
|
||||
if (impl->browse_files_model)
|
||||
{
|
||||
|
||||
+1
-1
@@ -2117,7 +2117,7 @@ gtk_range_draw (GtkWidget *widget,
|
||||
|
||||
if (draw_trough)
|
||||
{
|
||||
if (!priv->has_origin)
|
||||
if (!priv->has_origin || !draw_slider)
|
||||
{
|
||||
gtk_render_background (context, cr,
|
||||
x, y, width, height);
|
||||
|
||||
+98
-58
@@ -46,6 +46,9 @@ struct _HandleWindow
|
||||
gint dx;
|
||||
gint dy;
|
||||
guint dragged : 1;
|
||||
guint mode_visible : 1;
|
||||
guint user_visible : 1;
|
||||
guint has_point : 1;
|
||||
};
|
||||
|
||||
struct _GtkTextHandlePrivate
|
||||
@@ -103,6 +106,9 @@ _gtk_text_handle_draw (GtkTextHandle *handle,
|
||||
cairo_set_source_rgba (cr, 0, 0, 0, 0);
|
||||
cairo_paint (cr);
|
||||
|
||||
if (pos == GTK_TEXT_HANDLE_POSITION_SELECTION_END)
|
||||
cairo_translate (cr, 0, priv->windows[pos].pointing_to.height);
|
||||
|
||||
gtk_style_context_save (priv->style_context);
|
||||
gtk_style_context_add_class (priv->style_context,
|
||||
GTK_STYLE_CLASS_CURSOR_HANDLE);
|
||||
@@ -133,6 +139,7 @@ _gtk_text_handle_update_shape (GtkTextHandle *handle,
|
||||
GtkTextHandlePosition pos)
|
||||
{
|
||||
GtkTextHandlePrivate *priv;
|
||||
cairo_rectangle_int_t rect;
|
||||
cairo_surface_t *surface;
|
||||
cairo_region_t *region;
|
||||
cairo_t *cr;
|
||||
@@ -156,6 +163,15 @@ _gtk_text_handle_update_shape (GtkTextHandle *handle,
|
||||
else
|
||||
gdk_window_shape_combine_region (window, region, 0, 0);
|
||||
|
||||
cairo_region_get_extents (region, &rect);
|
||||
cairo_region_destroy (region);
|
||||
|
||||
/* Preserve x/width, but extend input shape
|
||||
* vertically to all window height */
|
||||
rect.y = 0;
|
||||
rect.height = gdk_window_get_height (window);
|
||||
region = cairo_region_create_rectangle (&rect);
|
||||
|
||||
gdk_window_input_shape_combine_region (window, region, 0, 0);
|
||||
|
||||
cairo_surface_destroy (surface);
|
||||
@@ -275,6 +291,8 @@ gtk_text_handle_widget_event (GtkWidget *widget,
|
||||
if (pos == GTK_TEXT_HANDLE_POSITION_SELECTION_START)
|
||||
y += height;
|
||||
|
||||
y += priv->windows[pos].pointing_to.height / 2;
|
||||
|
||||
g_signal_emit (handle, signals[HANDLE_DRAGGED], 0, pos, x, y);
|
||||
}
|
||||
|
||||
@@ -282,13 +300,11 @@ gtk_text_handle_widget_event (GtkWidget *widget,
|
||||
}
|
||||
|
||||
static void
|
||||
_gtk_text_handle_update_window (GtkTextHandle *handle,
|
||||
GtkTextHandlePosition pos)
|
||||
_gtk_text_handle_update_window_state (GtkTextHandle *handle,
|
||||
GtkTextHandlePosition pos)
|
||||
{
|
||||
GtkTextHandlePrivate *priv;
|
||||
HandleWindow *handle_window;
|
||||
gboolean visible;
|
||||
gint x, y;
|
||||
|
||||
priv = handle->priv;
|
||||
handle_window = &priv->windows[pos];
|
||||
@@ -296,30 +312,50 @@ _gtk_text_handle_update_window (GtkTextHandle *handle,
|
||||
if (!handle_window->window)
|
||||
return;
|
||||
|
||||
/* Get current state and destroy */
|
||||
visible = gdk_window_is_visible (handle_window->window);
|
||||
|
||||
if (visible)
|
||||
if (handle_window->has_point &&
|
||||
handle_window->mode_visible && handle_window->user_visible)
|
||||
{
|
||||
gint width;
|
||||
gint x, y, width, height;
|
||||
|
||||
_gtk_text_handle_get_size (handle, &width, NULL);
|
||||
gdk_window_get_root_coords (handle_window->window,
|
||||
width / 2, 0, &x, &y);
|
||||
}
|
||||
x = handle_window->pointing_to.x;
|
||||
y = handle_window->pointing_to.y;
|
||||
_gtk_text_handle_get_size (handle, &width, &height);
|
||||
|
||||
gtk_widget_unregister_window (priv->parent, handle_window->window);
|
||||
gdk_window_destroy (handle_window->window);
|
||||
if (pos != GTK_TEXT_HANDLE_POSITION_CURSOR)
|
||||
y -= height;
|
||||
|
||||
/* Create new window and apply old state */
|
||||
handle_window->window = _gtk_text_handle_create_window (handle, pos);
|
||||
height += handle_window->pointing_to.height;
|
||||
x -= width / 2;
|
||||
|
||||
if (visible)
|
||||
{
|
||||
gdk_window_move_resize (handle_window->window, x, y, width, height);
|
||||
gdk_window_show (handle_window->window);
|
||||
_gtk_text_handle_set_position (handle, pos,
|
||||
&handle_window->pointing_to);
|
||||
}
|
||||
else
|
||||
gdk_window_hide (handle_window->window);
|
||||
}
|
||||
|
||||
static void
|
||||
_gtk_text_handle_update_window (GtkTextHandle *handle,
|
||||
GtkTextHandlePosition pos,
|
||||
gboolean recreate)
|
||||
{
|
||||
GtkTextHandlePrivate *priv;
|
||||
HandleWindow *handle_window;
|
||||
|
||||
priv = handle->priv;
|
||||
handle_window = &priv->windows[pos];
|
||||
|
||||
if (!handle_window->window)
|
||||
return;
|
||||
|
||||
if (recreate)
|
||||
{
|
||||
gtk_widget_unregister_window (priv->parent, handle_window->window);
|
||||
gdk_window_destroy (handle_window->window);
|
||||
handle_window->window = _gtk_text_handle_create_window (handle, pos);
|
||||
}
|
||||
|
||||
_gtk_text_handle_update_window_state (handle, pos);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -328,8 +364,15 @@ _gtk_text_handle_update_windows (GtkTextHandle *handle)
|
||||
GtkTextHandlePrivate *priv = handle->priv;
|
||||
|
||||
gtk_style_context_invalidate (priv->style_context);
|
||||
_gtk_text_handle_update_window (handle, GTK_TEXT_HANDLE_POSITION_SELECTION_START);
|
||||
_gtk_text_handle_update_window (handle, GTK_TEXT_HANDLE_POSITION_SELECTION_END);
|
||||
_gtk_text_handle_update_window (handle, GTK_TEXT_HANDLE_POSITION_SELECTION_START, FALSE);
|
||||
_gtk_text_handle_update_window (handle, GTK_TEXT_HANDLE_POSITION_SELECTION_END, FALSE);
|
||||
}
|
||||
|
||||
static void
|
||||
_gtk_text_handle_composited_changed (GtkTextHandle *handle)
|
||||
{
|
||||
_gtk_text_handle_update_window (handle, GTK_TEXT_HANDLE_POSITION_SELECTION_START, TRUE);
|
||||
_gtk_text_handle_update_window (handle, GTK_TEXT_HANDLE_POSITION_SELECTION_END, TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -350,7 +393,7 @@ gtk_text_handle_constructed (GObject *object)
|
||||
object);
|
||||
priv->composited_changed_id =
|
||||
g_signal_connect_swapped (priv->parent, "composited-changed",
|
||||
G_CALLBACK (_gtk_text_handle_update_windows),
|
||||
G_CALLBACK (_gtk_text_handle_composited_changed),
|
||||
object);
|
||||
priv->style_updated_id =
|
||||
g_signal_connect_swapped (priv->parent, "style-updated",
|
||||
@@ -577,30 +620,34 @@ _gtk_text_handle_set_mode (GtkTextHandle *handle,
|
||||
if (priv->mode == mode)
|
||||
return;
|
||||
|
||||
priv->mode = mode;
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case GTK_TEXT_HANDLE_MODE_CURSOR:
|
||||
/* Only display one handle */
|
||||
gdk_window_show (priv->windows[GTK_TEXT_HANDLE_POSITION_CURSOR].window);
|
||||
gdk_window_hide (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].window);
|
||||
priv->windows[GTK_TEXT_HANDLE_POSITION_CURSOR].mode_visible = TRUE;
|
||||
priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].mode_visible = FALSE;
|
||||
break;
|
||||
case GTK_TEXT_HANDLE_MODE_SELECTION:
|
||||
/* Display both handles */
|
||||
gdk_window_show (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].window);
|
||||
gdk_window_show (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_END].window);
|
||||
case GTK_TEXT_HANDLE_MODE_SELECTION:
|
||||
priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].mode_visible = TRUE;
|
||||
priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_END].mode_visible = TRUE;
|
||||
break;
|
||||
case GTK_TEXT_HANDLE_MODE_NONE:
|
||||
default:
|
||||
gdk_window_hide (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].window);
|
||||
gdk_window_hide (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_END].window);
|
||||
priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].mode_visible = FALSE;
|
||||
priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_END].mode_visible = FALSE;
|
||||
break;
|
||||
}
|
||||
|
||||
priv->mode = mode;
|
||||
|
||||
_gtk_text_handle_update_shape (handle,
|
||||
priv->windows[GTK_TEXT_HANDLE_POSITION_CURSOR].window,
|
||||
GTK_TEXT_HANDLE_POSITION_CURSOR);
|
||||
_gtk_text_handle_update_shape (handle,
|
||||
priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].window,
|
||||
GTK_TEXT_HANDLE_POSITION_SELECTION_START);
|
||||
|
||||
_gtk_text_handle_update_window_state (handle, GTK_TEXT_HANDLE_POSITION_SELECTION_START);
|
||||
_gtk_text_handle_update_window_state (handle, GTK_TEXT_HANDLE_POSITION_SELECTION_END);
|
||||
}
|
||||
|
||||
GtkTextHandleMode
|
||||
@@ -620,14 +667,15 @@ _gtk_text_handle_set_position (GtkTextHandle *handle,
|
||||
GdkRectangle *rect)
|
||||
{
|
||||
GtkTextHandlePrivate *priv;
|
||||
gint x, y, width, height;
|
||||
HandleWindow *handle_window;
|
||||
gboolean size_changed;
|
||||
|
||||
g_return_if_fail (GTK_IS_TEXT_HANDLE (handle));
|
||||
|
||||
priv = handle->priv;
|
||||
pos = CLAMP (pos, GTK_TEXT_HANDLE_POSITION_CURSOR,
|
||||
GTK_TEXT_HANDLE_POSITION_SELECTION_START);
|
||||
handle_window = &priv->windows[pos];
|
||||
|
||||
if (!priv->realized)
|
||||
return;
|
||||
@@ -637,21 +685,20 @@ _gtk_text_handle_set_position (GtkTextHandle *handle,
|
||||
pos != GTK_TEXT_HANDLE_POSITION_CURSOR))
|
||||
return;
|
||||
|
||||
size_changed = (rect->width != handle_window->pointing_to.width ||
|
||||
rect->height != handle_window->pointing_to.height);
|
||||
|
||||
handle_window->pointing_to = *rect;
|
||||
handle_window->has_point = TRUE;
|
||||
gdk_window_get_root_coords (priv->relative_to,
|
||||
rect->x, rect->y,
|
||||
&x, &y);
|
||||
_gtk_text_handle_get_size (handle, &width, &height);
|
||||
handle_window = &priv->windows[pos];
|
||||
&handle_window->pointing_to.x,
|
||||
&handle_window->pointing_to.y);
|
||||
|
||||
if (pos == GTK_TEXT_HANDLE_POSITION_CURSOR)
|
||||
y += rect->height;
|
||||
else
|
||||
y -= height;
|
||||
_gtk_text_handle_update_window_state (handle, pos);
|
||||
|
||||
x -= width / 2;
|
||||
|
||||
gdk_window_move (handle_window->window, x, y);
|
||||
handle_window->pointing_to = *rect;
|
||||
if (size_changed)
|
||||
_gtk_text_handle_update_shape (handle, handle_window->window, pos);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -676,18 +723,11 @@ _gtk_text_handle_set_visible (GtkTextHandle *handle,
|
||||
if (!window)
|
||||
return;
|
||||
|
||||
if (!visible)
|
||||
gdk_window_hide (window);
|
||||
else
|
||||
{
|
||||
if (priv->mode == GTK_TEXT_HANDLE_MODE_NONE ||
|
||||
(priv->mode == GTK_TEXT_HANDLE_MODE_CURSOR &&
|
||||
pos != GTK_TEXT_HANDLE_POSITION_CURSOR))
|
||||
return;
|
||||
if (!gdk_window_is_visible (window))
|
||||
_gtk_text_handle_update_shape (handle, window, pos);
|
||||
|
||||
if (!gdk_window_is_visible (window))
|
||||
gdk_window_show (window);
|
||||
}
|
||||
priv->windows[pos].user_visible = visible;
|
||||
_gtk_text_handle_update_window_state (handle, pos);
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
||||
+264
-15
@@ -53,6 +53,8 @@
|
||||
#include "gtktexthandleprivate.h"
|
||||
#include "gtkstylecontextprivate.h"
|
||||
#include "gtkcssstylepropertyprivate.h"
|
||||
#include "gtkbubblewindowprivate.h"
|
||||
#include "gtktoolbar.h"
|
||||
|
||||
#include "a11y/gtktextviewaccessibleprivate.h"
|
||||
|
||||
@@ -136,6 +138,8 @@ struct _GtkTextViewPrivate
|
||||
|
||||
gulong selection_drag_handler;
|
||||
GtkTextHandle *text_handle;
|
||||
GtkWidget *selection_bubble;
|
||||
guint selection_bubble_timeout_id;
|
||||
|
||||
GtkTextWindow *text_window;
|
||||
GtkTextWindow *left_window;
|
||||
@@ -235,6 +239,7 @@ struct _GtkTextViewPrivate
|
||||
guint vscroll_policy : 1;
|
||||
guint cursor_handle_dragged : 1;
|
||||
guint selection_handle_dragged : 1;
|
||||
guint populate_all : 1;
|
||||
};
|
||||
|
||||
struct _GtkTextPendingScroll
|
||||
@@ -289,7 +294,8 @@ enum
|
||||
PROP_HSCROLL_POLICY,
|
||||
PROP_VSCROLL_POLICY,
|
||||
PROP_INPUT_PURPOSE,
|
||||
PROP_INPUT_HINTS
|
||||
PROP_INPUT_HINTS,
|
||||
PROP_POPULATE_ALL
|
||||
};
|
||||
|
||||
static void gtk_text_view_finalize (GObject *object);
|
||||
@@ -511,9 +517,16 @@ static void gtk_text_view_handle_dragged (GtkTextHandle *handle,
|
||||
gint x,
|
||||
gint y,
|
||||
GtkTextView *text_view);
|
||||
static void gtk_text_view_handle_drag_finished (GtkTextHandle *handle,
|
||||
GtkTextHandlePosition pos,
|
||||
GtkTextView *text_view);
|
||||
static void gtk_text_view_update_handles (GtkTextView *text_view,
|
||||
GtkTextHandleMode mode);
|
||||
|
||||
static void gtk_text_view_selection_bubble_popup_unset (GtkTextView *text_view);
|
||||
static void gtk_text_view_selection_bubble_popup_set (GtkTextView *text_view);
|
||||
|
||||
|
||||
/* FIXME probably need the focus methods. */
|
||||
|
||||
typedef struct _GtkTextViewChild GtkTextViewChild;
|
||||
@@ -850,6 +863,22 @@ gtk_text_view_class_init (GtkTextViewClass *klass)
|
||||
GTK_INPUT_HINT_NONE,
|
||||
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
||||
|
||||
/** GtkTextView:populate-all:
|
||||
*
|
||||
* If ::populate-all is %TRUE, the #GtkTextView::populate-popup
|
||||
* signal is also emitted for touch popups.
|
||||
*
|
||||
* Since: 3.8
|
||||
*/
|
||||
g_object_class_install_property (gobject_class,
|
||||
PROP_POPULATE_ALL,
|
||||
g_param_spec_boolean ("populate-all",
|
||||
P_("Populate all"),
|
||||
P_("Whether to emit ::populate-popup for touch popups"),
|
||||
FALSE,
|
||||
GTK_PARAM_READWRITE));
|
||||
|
||||
|
||||
/* GtkScrollable interface */
|
||||
g_object_class_override_property (gobject_class, PROP_HADJUSTMENT, "hadjustment");
|
||||
g_object_class_override_property (gobject_class, PROP_VADJUSTMENT, "vadjustment");
|
||||
@@ -1112,13 +1141,22 @@ gtk_text_view_class_init (GtkTextViewClass *klass)
|
||||
/**
|
||||
* GtkTextView::populate-popup:
|
||||
* @text_view: The text view on which the signal is emitted
|
||||
* @menu: the menu that is being populated
|
||||
* @popup: the container that is being populated
|
||||
*
|
||||
* The ::populate-popup signal gets emitted before showing the
|
||||
* The ::populate-popup signal gets emitted before showing the
|
||||
* context menu of the text view.
|
||||
*
|
||||
* If you need to add items to the context menu, connect
|
||||
* to this signal and append your menuitems to the @menu.
|
||||
* to this signal and append your items to the @popup, which
|
||||
* will be a #GtkMenu in this case.
|
||||
*
|
||||
* If #GtkEntry::populate-toolbar is %TRUE, this signal will
|
||||
* also be emitted to populate touch popups. In this case,
|
||||
* @popup will be a different container, e.g. a #GtkToolbar.
|
||||
*
|
||||
* The signal handler should not make assumptions about the
|
||||
* type of @widget, but check whether @popup is a #GtkMenu
|
||||
* or #GtkToolbar or another kind of container.
|
||||
*/
|
||||
signals[POPULATE_POPUP] =
|
||||
g_signal_new (I_("populate-popup"),
|
||||
@@ -1128,7 +1166,7 @@ gtk_text_view_class_init (GtkTextViewClass *klass)
|
||||
NULL, NULL,
|
||||
_gtk_marshal_VOID__OBJECT,
|
||||
G_TYPE_NONE, 1,
|
||||
GTK_TYPE_MENU);
|
||||
GTK_TYPE_WIDGET);
|
||||
|
||||
/**
|
||||
* GtkTextView::select-all:
|
||||
@@ -1479,6 +1517,8 @@ gtk_text_view_init (GtkTextView *text_view)
|
||||
priv->text_handle = _gtk_text_handle_new (widget);
|
||||
g_signal_connect (priv->text_handle, "handle-dragged",
|
||||
G_CALLBACK (gtk_text_view_handle_dragged), text_view);
|
||||
g_signal_connect (priv->text_handle, "drag-finished",
|
||||
G_CALLBACK (gtk_text_view_handle_drag_finished), text_view);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -3137,6 +3177,9 @@ gtk_text_view_finalize (GObject *object)
|
||||
if (priv->bottom_window)
|
||||
text_window_free (priv->bottom_window);
|
||||
|
||||
if (priv->selection_bubble)
|
||||
gtk_widget_destroy (priv->selection_bubble);
|
||||
|
||||
g_object_unref (priv->text_handle);
|
||||
g_object_unref (priv->im_context);
|
||||
|
||||
@@ -3248,6 +3291,10 @@ gtk_text_view_set_property (GObject *object,
|
||||
gtk_text_view_set_input_hints (text_view, g_value_get_flags (value));
|
||||
break;
|
||||
|
||||
case PROP_POPULATE_ALL:
|
||||
text_view->priv->populate_all = g_value_get_boolean (value);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
@@ -3352,6 +3399,10 @@ gtk_text_view_get_property (GObject *object,
|
||||
g_value_set_flags (value, gtk_text_view_get_input_hints (text_view));
|
||||
break;
|
||||
|
||||
case PROP_POPULATE_ALL:
|
||||
g_value_set_boolean (value, priv->populate_all);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
@@ -4509,6 +4560,7 @@ gtk_text_view_handle_dragged (GtkTextHandle *handle,
|
||||
buffer = get_buffer (text_view);
|
||||
mode = _gtk_text_handle_get_mode (handle);
|
||||
|
||||
gtk_text_view_selection_bubble_popup_unset (text_view);
|
||||
gtk_text_layout_get_iter_at_pixel (priv->layout, &iter,
|
||||
x + priv->xoffset,
|
||||
y + priv->yoffset);
|
||||
@@ -4575,6 +4627,14 @@ gtk_text_view_handle_dragged (GtkTextHandle *handle,
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_text_view_handle_drag_finished (GtkTextHandle *handle,
|
||||
GtkTextHandlePosition pos,
|
||||
GtkTextView *text_view)
|
||||
{
|
||||
gtk_text_view_selection_bubble_popup_set (text_view);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_text_view_update_handles (GtkTextView *text_view,
|
||||
GtkTextHandleMode mode)
|
||||
@@ -4755,8 +4815,11 @@ gtk_text_view_key_press_event (GtkWidget *widget, GdkEventKey *event)
|
||||
gtk_text_view_reset_blink_time (text_view);
|
||||
gtk_text_view_pend_cursor_blink (text_view);
|
||||
|
||||
_gtk_text_handle_set_mode (priv->text_handle,
|
||||
GTK_TEXT_HANDLE_MODE_NONE);
|
||||
if (!event->send_event)
|
||||
_gtk_text_handle_set_mode (priv->text_handle,
|
||||
GTK_TEXT_HANDLE_MODE_NONE);
|
||||
|
||||
gtk_text_view_selection_bubble_popup_unset (text_view);
|
||||
|
||||
return retval;
|
||||
}
|
||||
@@ -4808,6 +4871,7 @@ gtk_text_view_button_press_event (GtkWidget *widget, GdkEventButton *event)
|
||||
}
|
||||
|
||||
gtk_text_view_reset_blink_time (text_view);
|
||||
gtk_text_view_selection_bubble_popup_unset (text_view);
|
||||
|
||||
#if 0
|
||||
/* debug hack */
|
||||
@@ -4925,9 +4989,11 @@ gtk_text_view_button_release_event (GtkWidget *widget, GdkEventButton *event)
|
||||
{
|
||||
GtkTextView *text_view;
|
||||
GtkTextViewPrivate *priv;
|
||||
GdkDevice *device;
|
||||
|
||||
text_view = GTK_TEXT_VIEW (widget);
|
||||
priv = text_view->priv;
|
||||
device = gdk_event_get_source_device ((GdkEvent *) event);
|
||||
|
||||
if (event->window != priv->text_window->bin_window)
|
||||
return FALSE;
|
||||
@@ -4941,11 +5007,15 @@ gtk_text_view_button_release_event (GtkWidget *widget, GdkEventButton *event)
|
||||
}
|
||||
|
||||
if (gtk_text_view_end_selection_drag (GTK_TEXT_VIEW (widget)))
|
||||
return TRUE;
|
||||
{
|
||||
if (test_touchscreen ||
|
||||
gdk_device_get_source (device) == GDK_SOURCE_TOUCHSCREEN)
|
||||
gtk_text_view_selection_bubble_popup_set (text_view);
|
||||
return TRUE;
|
||||
}
|
||||
else if (priv->pending_place_cursor_button == event->button)
|
||||
{
|
||||
GtkTextHandleMode mode;
|
||||
GdkDevice *device;
|
||||
GtkTextIter iter;
|
||||
|
||||
/* Unselect everything; we clicked inside selection, but
|
||||
@@ -4960,12 +5030,10 @@ gtk_text_view_button_release_event (GtkWidget *widget, GdkEventButton *event)
|
||||
gtk_text_buffer_place_cursor (get_buffer (text_view), &iter);
|
||||
gtk_text_view_check_cursor_blink (text_view);
|
||||
|
||||
device = gdk_event_get_source_device ((GdkEvent *) event);
|
||||
|
||||
if (gtk_widget_is_sensitive (widget) &&
|
||||
(test_touchscreen ||
|
||||
gdk_device_get_source (device) == GDK_SOURCE_TOUCHSCREEN))
|
||||
mode = GTK_TEXT_HANDLE_MODE_CURSOR;
|
||||
mode = GTK_TEXT_HANDLE_MODE_CURSOR;
|
||||
else
|
||||
mode = GTK_TEXT_HANDLE_MODE_NONE;
|
||||
|
||||
@@ -5045,6 +5113,7 @@ gtk_text_view_focus_out_event (GtkWidget *widget, GdkEventFocus *event)
|
||||
g_signal_handlers_disconnect_by_func (gdk_keymap_get_for_display (gtk_widget_get_display (widget)),
|
||||
keymap_direction_changed,
|
||||
text_view);
|
||||
gtk_text_view_selection_bubble_popup_unset (text_view);
|
||||
_gtk_text_handle_set_mode (priv->text_handle,
|
||||
GTK_TEXT_HANDLE_MODE_NONE);
|
||||
|
||||
@@ -5153,9 +5222,22 @@ gtk_text_view_draw (GtkWidget *widget,
|
||||
{
|
||||
GSList *tmp_list;
|
||||
GdkWindow *window;
|
||||
|
||||
GtkStyleContext *context;
|
||||
|
||||
context = gtk_widget_get_style_context (widget);
|
||||
|
||||
if (gtk_cairo_should_draw_window (cr, gtk_widget_get_window (widget)))
|
||||
gtk_text_view_draw_focus (widget, cr);
|
||||
{
|
||||
gtk_style_context_save (context);
|
||||
gtk_style_context_add_class (context, GTK_STYLE_CLASS_VIEW);
|
||||
gtk_render_background (context, cr,
|
||||
0, 0,
|
||||
gtk_widget_get_allocated_width (widget),
|
||||
gtk_widget_get_allocated_height (widget));
|
||||
gtk_style_context_restore (context);
|
||||
|
||||
gtk_text_view_draw_focus (widget, cr);
|
||||
}
|
||||
|
||||
window = gtk_text_view_get_window (GTK_TEXT_VIEW (widget),
|
||||
GTK_TEXT_WINDOW_TEXT);
|
||||
@@ -6313,6 +6395,7 @@ gtk_text_view_cut_clipboard (GtkTextView *text_view)
|
||||
DV(g_print (G_STRLOC": scrolling onscreen\n"));
|
||||
gtk_text_view_scroll_mark_onscreen (text_view,
|
||||
gtk_text_buffer_get_insert (get_buffer (text_view)));
|
||||
gtk_text_view_selection_bubble_popup_unset (text_view);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -6363,7 +6446,10 @@ gtk_text_view_buffer_changed_handler (GtkTextBuffer *buffer,
|
||||
gpointer data)
|
||||
{
|
||||
GtkTextView *text_view = data;
|
||||
gtk_text_view_update_handles (text_view, GTK_TEXT_HANDLE_MODE_NONE);
|
||||
GtkTextViewPrivate *priv = text_view->priv;
|
||||
|
||||
gtk_text_view_update_handles (text_view,
|
||||
_gtk_text_handle_get_mode (priv->text_handle));
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -8683,6 +8769,165 @@ gtk_text_view_popup_menu (GtkWidget *widget)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_text_view_get_selection_rect (GtkTextView *text_view,
|
||||
cairo_rectangle_int_t *rect)
|
||||
{
|
||||
cairo_rectangle_int_t rect_cursor, rect_bound;
|
||||
GtkTextIter cursor, bound;
|
||||
GtkTextBuffer *buffer;
|
||||
gint x1, y1, x2, y2;
|
||||
|
||||
buffer = get_buffer (text_view);
|
||||
gtk_text_buffer_get_iter_at_mark (buffer, &cursor,
|
||||
gtk_text_buffer_get_insert (buffer));
|
||||
gtk_text_buffer_get_iter_at_mark (buffer, &bound,
|
||||
gtk_text_buffer_get_selection_bound (buffer));
|
||||
|
||||
gtk_text_view_get_cursor_locations (text_view, &cursor, &rect_cursor, NULL);
|
||||
gtk_text_view_get_cursor_locations (text_view, &bound, &rect_bound, NULL);
|
||||
|
||||
x1 = MIN (rect_cursor.x, rect_bound.x);
|
||||
x2 = MAX (rect_cursor.x, rect_bound.x);
|
||||
y1 = MIN (rect_cursor.y, rect_bound.y);
|
||||
y2 = MAX (rect_cursor.y + rect_cursor.height, rect_bound.y + rect_bound.height);
|
||||
|
||||
rect->x = x1;
|
||||
rect->y = y1;
|
||||
rect->width = x2 - x1;
|
||||
rect->height = y2 - y1;
|
||||
}
|
||||
|
||||
static void
|
||||
activate_bubble_cb (GtkWidget *item,
|
||||
GtkTextView *text_view)
|
||||
{
|
||||
const gchar *signal = g_object_get_data (G_OBJECT (item), "gtk-signal");
|
||||
g_signal_emit_by_name (text_view, signal);
|
||||
_gtk_bubble_window_popdown (GTK_BUBBLE_WINDOW (text_view->priv->selection_bubble));
|
||||
}
|
||||
|
||||
static void
|
||||
append_bubble_action (GtkTextView *text_view,
|
||||
GtkWidget *toolbar,
|
||||
const gchar *stock_id,
|
||||
const gchar *signal,
|
||||
gboolean sensitive)
|
||||
{
|
||||
GtkToolItem *item = gtk_tool_button_new_from_stock (stock_id);
|
||||
g_object_set_data (G_OBJECT (item), I_("gtk-signal"), (char *)signal);
|
||||
g_signal_connect (item, "clicked", G_CALLBACK (activate_bubble_cb), text_view);
|
||||
gtk_widget_set_sensitive (GTK_WIDGET (item), sensitive);
|
||||
gtk_widget_show (GTK_WIDGET (item));
|
||||
gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1);
|
||||
}
|
||||
|
||||
static void
|
||||
bubble_targets_received (GtkClipboard *clipboard,
|
||||
GtkSelectionData *data,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkTextView *text_view = user_data;
|
||||
GtkTextViewPrivate *priv = text_view->priv;
|
||||
cairo_rectangle_int_t rect;
|
||||
gboolean has_selection;
|
||||
gboolean has_clipboard;
|
||||
gboolean can_insert;
|
||||
GtkTextIter iter;
|
||||
GtkTextIter sel_start, sel_end;
|
||||
GdkWindow *window;
|
||||
GtkWidget *toolbar;
|
||||
|
||||
has_selection = gtk_text_buffer_get_selection_bounds (get_buffer (text_view),
|
||||
&sel_start, &sel_end);
|
||||
if (!priv->editable && !has_selection)
|
||||
{
|
||||
priv->selection_bubble_timeout_id = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (priv->selection_bubble)
|
||||
gtk_widget_destroy (priv->selection_bubble);
|
||||
|
||||
window = gtk_widget_get_window (GTK_WIDGET (text_view));
|
||||
priv->selection_bubble = _gtk_bubble_window_new ();
|
||||
toolbar = GTK_WIDGET (gtk_toolbar_new ());
|
||||
gtk_toolbar_set_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_TEXT);
|
||||
gtk_toolbar_set_show_arrow (GTK_TOOLBAR (toolbar), FALSE);
|
||||
gtk_widget_show (toolbar);
|
||||
gtk_container_add (GTK_CONTAINER (priv->selection_bubble), toolbar);
|
||||
|
||||
gtk_text_buffer_get_iter_at_mark (get_buffer (text_view), &iter,
|
||||
gtk_text_buffer_get_insert (get_buffer (text_view)));
|
||||
can_insert = gtk_text_iter_can_insert (&iter, priv->editable);
|
||||
has_clipboard = gtk_selection_data_targets_include_text (data);
|
||||
|
||||
append_bubble_action (text_view, toolbar, GTK_STOCK_CUT, "cut-clipboard",
|
||||
has_selection &&
|
||||
range_contains_editable_text (&sel_start, &sel_end,
|
||||
priv->editable));
|
||||
append_bubble_action (text_view, toolbar, GTK_STOCK_COPY, "copy-clipboard",
|
||||
has_selection);
|
||||
append_bubble_action (text_view, toolbar, GTK_STOCK_PASTE, "paste-clipboard",
|
||||
can_insert && has_clipboard);
|
||||
|
||||
if (priv->populate_all)
|
||||
g_signal_emit (text_view, signals[POPULATE_POPUP], 0, toolbar);
|
||||
|
||||
gtk_text_view_get_selection_rect (text_view, &rect);
|
||||
rect.x -= priv->xoffset;
|
||||
rect.y -= priv->yoffset;
|
||||
_gtk_bubble_window_popup (GTK_BUBBLE_WINDOW (priv->selection_bubble),
|
||||
window, &rect, GTK_POS_TOP);
|
||||
|
||||
priv->selection_bubble_timeout_id = 0;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gtk_text_view_selection_bubble_popup_cb (gpointer user_data)
|
||||
{
|
||||
GtkTextView *text_view = user_data;
|
||||
gtk_clipboard_request_contents (gtk_widget_get_clipboard (GTK_WIDGET (text_view),
|
||||
GDK_SELECTION_CLIPBOARD),
|
||||
gdk_atom_intern_static_string ("TARGETS"),
|
||||
bubble_targets_received,
|
||||
text_view);
|
||||
|
||||
return G_SOURCE_REMOVE;
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_text_view_selection_bubble_popup_unset (GtkTextView *text_view)
|
||||
{
|
||||
GtkTextViewPrivate *priv;
|
||||
|
||||
priv = text_view->priv;
|
||||
|
||||
if (priv->selection_bubble)
|
||||
_gtk_bubble_window_popdown (GTK_BUBBLE_WINDOW (priv->selection_bubble));
|
||||
|
||||
if (priv->selection_bubble_timeout_id)
|
||||
{
|
||||
g_source_remove (priv->selection_bubble_timeout_id);
|
||||
priv->selection_bubble_timeout_id = 0;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_text_view_selection_bubble_popup_set (GtkTextView *text_view)
|
||||
{
|
||||
GtkTextViewPrivate *priv;
|
||||
|
||||
priv = text_view->priv;
|
||||
|
||||
if (priv->selection_bubble_timeout_id)
|
||||
g_source_remove (priv->selection_bubble_timeout_id);
|
||||
|
||||
priv->selection_bubble_timeout_id =
|
||||
gdk_threads_add_timeout (1000, gtk_text_view_selection_bubble_popup_cb,
|
||||
text_view);
|
||||
}
|
||||
|
||||
/* Child GdkWindows */
|
||||
|
||||
|
||||
@@ -8851,8 +9096,12 @@ text_window_scroll (GtkTextWindow *win,
|
||||
gint dx,
|
||||
gint dy)
|
||||
{
|
||||
GtkTextView *view = GTK_TEXT_VIEW (win->widget);
|
||||
GtkTextViewPrivate *priv = view->priv;
|
||||
|
||||
if (dx != 0 || dy != 0)
|
||||
{
|
||||
_gtk_bubble_window_popdown (GTK_BUBBLE_WINDOW (priv->selection_bubble));
|
||||
gdk_window_scroll (win->bin_window, dx, dy);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -78,7 +78,7 @@ struct _GtkTextViewClass
|
||||
GtkContainerClass parent_class;
|
||||
|
||||
void (* populate_popup) (GtkTextView *text_view,
|
||||
GtkMenu *menu);
|
||||
GtkWidget *popup);
|
||||
|
||||
/* These are all RUN_ACTION signals for keybindings */
|
||||
|
||||
|
||||
+22
-1
@@ -231,6 +231,8 @@ static GtkWidgetPath * gtk_toolbar_get_path_for_child
|
||||
GtkWidget *child);
|
||||
static void gtk_toolbar_invalidate_order (GtkToolbar *toolbar);
|
||||
|
||||
static void gtk_toolbar_direction_changed (GtkWidget *widget,
|
||||
GtkTextDirection previous_direction);
|
||||
static void gtk_toolbar_orientation_changed (GtkToolbar *toolbar,
|
||||
GtkOrientation orientation);
|
||||
static void gtk_toolbar_real_style_changed (GtkToolbar *toolbar,
|
||||
@@ -394,6 +396,7 @@ gtk_toolbar_class_init (GtkToolbarClass *klass)
|
||||
widget_class->unmap = gtk_toolbar_unmap;
|
||||
widget_class->popup_menu = gtk_toolbar_popup_menu;
|
||||
widget_class->show_all = gtk_toolbar_show_all;
|
||||
widget_class->direction_changed = gtk_toolbar_direction_changed;
|
||||
|
||||
container_class->add = gtk_toolbar_add;
|
||||
container_class->remove = gtk_toolbar_remove;
|
||||
@@ -3855,6 +3858,10 @@ gtk_toolbar_get_visible_position (GtkToolbar *toolbar,
|
||||
|
||||
g_assert (count.found);
|
||||
|
||||
if (toolbar->priv->orientation == GTK_ORIENTATION_HORIZONTAL &&
|
||||
gtk_widget_get_direction (GTK_WIDGET (toolbar)) == GTK_TEXT_DIR_RTL)
|
||||
return count.after;
|
||||
|
||||
return count.before;
|
||||
}
|
||||
|
||||
@@ -3875,18 +3882,23 @@ gtk_toolbar_get_path_for_child (GtkContainer *container,
|
||||
{
|
||||
GtkWidgetPath *path;
|
||||
GtkToolbar *toolbar;
|
||||
GtkToolbarPrivate *priv;
|
||||
GtkWidgetPath *sibling_path;
|
||||
gint vis_index;
|
||||
GList *children;
|
||||
|
||||
toolbar = GTK_TOOLBAR (container);
|
||||
priv = toolbar->priv;
|
||||
|
||||
/* build a path for all the visible children;
|
||||
* get_children works in visible order
|
||||
*/
|
||||
sibling_path = gtk_widget_path_new ();
|
||||
children = _gtk_container_get_all_children (container);
|
||||
children = g_list_reverse (children);
|
||||
|
||||
if (priv->orientation != GTK_ORIENTATION_HORIZONTAL ||
|
||||
gtk_widget_get_direction (GTK_WIDGET (toolbar)) != GTK_TEXT_DIR_RTL)
|
||||
children = g_list_reverse (children);
|
||||
|
||||
g_list_foreach (children, add_widget_to_path, sibling_path);
|
||||
g_list_free (children);
|
||||
@@ -3924,3 +3936,12 @@ gtk_toolbar_invalidate_order (GtkToolbar *toolbar)
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_toolbar_direction_changed (GtkWidget *widget,
|
||||
GtkTextDirection previous_direction)
|
||||
{
|
||||
GTK_WIDGET_CLASS (gtk_toolbar_parent_class)->direction_changed (widget, previous_direction);
|
||||
|
||||
gtk_toolbar_invalidate_order (GTK_TOOLBAR (widget));
|
||||
}
|
||||
|
||||
|
||||
+14
-11
@@ -239,7 +239,6 @@ typedef enum {
|
||||
#define GTK_TREE_VIEW_PRIORITY_SCROLL_SYNC (GTK_TREE_VIEW_PRIORITY_VALIDATE + 2)
|
||||
#define GTK_TREE_VIEW_TIME_MS_PER_IDLE 30
|
||||
#define SCROLL_EDGE_SIZE 15
|
||||
#define EXPANDER_EXTRA_PADDING 4
|
||||
#define GTK_TREE_VIEW_SEARCH_DIALOG_TIMEOUT 5000
|
||||
#define AUTO_EXPAND_TIMEOUT 500
|
||||
|
||||
@@ -2865,13 +2864,14 @@ static int
|
||||
gtk_tree_view_get_expander_size (GtkTreeView *tree_view)
|
||||
{
|
||||
gint expander_size;
|
||||
gint horizontal_separator;
|
||||
|
||||
gtk_widget_style_get (GTK_WIDGET (tree_view),
|
||||
"expander-size", &expander_size,
|
||||
"horizontal-separator", &horizontal_separator,
|
||||
NULL);
|
||||
expander_size += EXPANDER_EXTRA_PADDING;
|
||||
|
||||
return expander_size;
|
||||
return expander_size + (horizontal_separator / 2);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@@ -9240,12 +9240,19 @@ gtk_tree_view_get_arrow_xrange (GtkTreeView *tree_view,
|
||||
GList *list;
|
||||
GtkTreeViewColumn *tmp_column = NULL;
|
||||
gint total_width;
|
||||
gint expander_size;
|
||||
gint expander_size, expander_render_size;
|
||||
gint horizontal_separator;
|
||||
gboolean indent_expanders;
|
||||
gboolean rtl;
|
||||
|
||||
gtk_widget_style_get (GTK_WIDGET (tree_view),
|
||||
"indent-expanders", &indent_expanders,
|
||||
"horizontal-separator", &horizontal_separator,
|
||||
NULL);
|
||||
|
||||
rtl = (gtk_widget_get_direction (GTK_WIDGET (tree_view)) == GTK_TEXT_DIR_RTL);
|
||||
expander_size = gtk_tree_view_get_expander_size (tree_view);
|
||||
expander_render_size = expander_size - (horizontal_separator / 2);
|
||||
|
||||
total_width = 0;
|
||||
for (list = (rtl ? g_list_last (tree_view->priv->columns) : g_list_first (tree_view->priv->columns));
|
||||
@@ -9267,9 +9274,7 @@ gtk_tree_view_get_arrow_xrange (GtkTreeView *tree_view,
|
||||
total_width += gtk_tree_view_column_get_width (tmp_column);
|
||||
}
|
||||
|
||||
gtk_widget_style_get (GTK_WIDGET (tree_view),
|
||||
"indent-expanders", &indent_expanders,
|
||||
NULL);
|
||||
x_offset += (expander_size - expander_render_size);
|
||||
|
||||
if (indent_expanders)
|
||||
{
|
||||
@@ -9284,7 +9289,7 @@ gtk_tree_view_get_arrow_xrange (GtkTreeView *tree_view,
|
||||
if (tmp_column &&
|
||||
gtk_tree_view_column_get_visible (tmp_column))
|
||||
/* +1 because x2 isn't included in the range. */
|
||||
*x2 = *x1 + expander_size + 1;
|
||||
*x2 = *x1 + expander_render_size + 1;
|
||||
else
|
||||
*x2 = *x1;
|
||||
}
|
||||
@@ -10083,7 +10088,6 @@ gtk_tree_view_draw_arrow (GtkTreeView *tree_view,
|
||||
gint x_offset = 0;
|
||||
gint x2;
|
||||
gint vertical_separator;
|
||||
gint expander_size;
|
||||
GtkCellRendererState flags = 0;
|
||||
|
||||
widget = GTK_WIDGET (tree_view);
|
||||
@@ -10092,7 +10096,6 @@ gtk_tree_view_draw_arrow (GtkTreeView *tree_view,
|
||||
gtk_widget_style_get (widget,
|
||||
"vertical-separator", &vertical_separator,
|
||||
NULL);
|
||||
expander_size = gtk_tree_view_get_expander_size (tree_view) - EXPANDER_EXTRA_PADDING;
|
||||
|
||||
if (! GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_PARENT))
|
||||
return;
|
||||
@@ -10102,7 +10105,7 @@ gtk_tree_view_draw_arrow (GtkTreeView *tree_view,
|
||||
area.x = x_offset;
|
||||
area.y = gtk_tree_view_get_cell_area_y_offset (tree_view, tree, node,
|
||||
vertical_separator);
|
||||
area.width = expander_size;
|
||||
area.width = x2 - x_offset;
|
||||
area.height = gtk_tree_view_get_cell_area_height (tree_view, node,
|
||||
vertical_separator);
|
||||
|
||||
|
||||
@@ -714,7 +714,6 @@ gtk_ui_manager_buildable_add_child (GtkBuildable *buildable,
|
||||
|
||||
pos = g_list_length (manager->private_data->action_groups);
|
||||
|
||||
g_object_ref (child);
|
||||
gtk_ui_manager_insert_action_group (manager,
|
||||
GTK_ACTION_GROUP (child),
|
||||
pos);
|
||||
|
||||
+35
-25
@@ -1805,6 +1805,13 @@ gtk_widget_class_init (GtkWidgetClass *klass)
|
||||
* restore it. The signal emission takes care of calling cairo_save()
|
||||
* before and cairo_restore() after invoking the handler.
|
||||
*
|
||||
* The signal handler will get a @cr with a clip region already set to the
|
||||
* widget's dirty region, i.e. to the area that needs repainting. Complicated
|
||||
* widgets that want to avoid redrawing themselves completely can get the full
|
||||
* extents of the clip region with gdk_cairo_get_clip_rectangle(), or they can
|
||||
* get a finer-grained representation of the dirty region with
|
||||
* cairo_copy_clip_rectangle_list().
|
||||
*
|
||||
* Returns: %TRUE to stop other handlers from being invoked for the event.
|
||||
% %FALSE to propagate the event further.
|
||||
*
|
||||
@@ -4627,11 +4634,11 @@ static guint tick_callback_id;
|
||||
* gdk_frame_clock_get_frame_time() should generally be used for timing
|
||||
* continuous animations and
|
||||
* gdk_frame_timings_get_predicted_presentation_time() if you are
|
||||
* trying to display isolated frames particular times.
|
||||
* trying to display isolated frames at particular times.
|
||||
*
|
||||
* This is a more convenient alternative to connecting directly to the
|
||||
* ::update signal of GdkFrameClock, since you don't have to worry about
|
||||
* when a #GdkFrameClock is assigned to a widget.
|
||||
* #GdkFrameClock::update signal of #GdkFrameClock, since you don't
|
||||
* have to worry about when a #GdkFrameClock is assigned to a widget.
|
||||
*
|
||||
* Returns: an id for the connection of this callback. Remove the callback
|
||||
* by passing it to gtk_widget_remove_tick_callback()
|
||||
@@ -5049,8 +5056,9 @@ gtk_widget_queue_resize_no_redraw (GtkWidget *widget)
|
||||
*
|
||||
* Unrealized widgets do not have a frame clock.
|
||||
*
|
||||
* Since: 3.0
|
||||
* Return value: (transfer none): a #GdkFrameClock (or #NULL if widget is unrealized)
|
||||
*
|
||||
* Since: 3.0
|
||||
*/
|
||||
GdkFrameClock*
|
||||
gtk_widget_get_frame_clock (GtkWidget *widget)
|
||||
@@ -14090,7 +14098,7 @@ gtk_widget_register_window (GtkWidget *widget,
|
||||
gdk_window_set_user_data (window, widget);
|
||||
priv->registered_windows = g_list_prepend (priv->registered_windows, window);
|
||||
|
||||
if (!gtk_widget_get_has_window (widget) && !gdk_window_has_native (window))
|
||||
if (priv->window != window && !gdk_window_has_native (window))
|
||||
gdk_window_set_opacity (window,
|
||||
priv->norender_children ? 0.0 : 1.0);
|
||||
}
|
||||
@@ -14222,21 +14230,25 @@ gtk_widget_propagate_alpha (GtkWidget *widget)
|
||||
|
||||
parent = priv->parent;
|
||||
|
||||
norender =
|
||||
/* If this widget has an opacity group, never render it */
|
||||
priv->opacity_group ||
|
||||
/* If the parent has norender_children, propagate that here */
|
||||
(parent != NULL && parent->priv->norender_children);
|
||||
/* Norender affects only windowed widget and means don't render widget->window in the
|
||||
normal fashion.
|
||||
We only set this if the parent has norender_children, because:
|
||||
a) For an opacity group (that does not have a norender_children parent) we still
|
||||
need to render the window or we will never get an expose event.
|
||||
b) For alpha we set the opacity of window->widget directly, so no other
|
||||
work is needed.
|
||||
*/
|
||||
norender = (parent != NULL && parent->priv->norender_children);
|
||||
|
||||
/* Windowed widget children should norender if: */
|
||||
/* windows under this widget should not render if:
|
||||
a) This widget has an opacity group
|
||||
b) This widget has alpha and is no-windowed (otherwise we'd set alpha on widget->window)
|
||||
c) This widget has norender but is no-windowed (a windowed widget would "swallow" the norender)
|
||||
*/
|
||||
norender_children =
|
||||
/* The widget is no_window (otherwise its enought to mark it norender/alpha), and */
|
||||
!gtk_widget_get_has_window (widget) &&
|
||||
( /* norender is set, or */
|
||||
norender ||
|
||||
/* widget has an alpha */
|
||||
priv->alpha != 255
|
||||
);
|
||||
priv->opacity_group ||
|
||||
(!gtk_widget_get_has_window (widget) &&
|
||||
( norender || priv->alpha != 255));
|
||||
|
||||
if (gtk_widget_get_has_window (widget))
|
||||
{
|
||||
@@ -14244,14 +14256,12 @@ gtk_widget_propagate_alpha (GtkWidget *widget)
|
||||
gdk_window_set_opacity (priv->window,
|
||||
norender ? 0 : priv->alpha / 255.0);
|
||||
}
|
||||
else /* !has_window */
|
||||
|
||||
for (l = priv->registered_windows; l != NULL; l = l->next)
|
||||
{
|
||||
for (l = priv->registered_windows; l != NULL; l = l->next)
|
||||
{
|
||||
GdkWindow *w = l->data;
|
||||
if (!gdk_window_has_native (w))
|
||||
gdk_window_set_opacity (w, norender_children ? 0.0 : 1.0);
|
||||
}
|
||||
GdkWindow *w = l->data;
|
||||
if (w != priv->window && !gdk_window_has_native (w))
|
||||
gdk_window_set_opacity (w, norender_children ? 0.0 : 1.0);
|
||||
}
|
||||
|
||||
priv->norender = norender;
|
||||
|
||||
@@ -422,9 +422,11 @@ static GtkKeyHash *gtk_window_get_key_hash (GtkWindow *window);
|
||||
static void gtk_window_free_key_hash (GtkWindow *window);
|
||||
static void gtk_window_on_composited_changed (GdkScreen *screen,
|
||||
GtkWindow *window);
|
||||
#ifdef GDK_WINDOWING_X11
|
||||
static void gtk_window_on_theme_variant_changed (GtkSettings *settings,
|
||||
GParamSpec *pspec,
|
||||
GtkWindow *window);
|
||||
#endif
|
||||
static void gtk_window_set_theme_variant (GtkWindow *window);
|
||||
|
||||
static GSList *toplevel_list = NULL;
|
||||
@@ -8336,6 +8338,7 @@ gtk_window_set_theme_variant (GtkWindow *window)
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef GDK_WINDOWING_X11
|
||||
static void
|
||||
gtk_window_on_theme_variant_changed (GtkSettings *settings,
|
||||
GParamSpec *pspec,
|
||||
@@ -8344,6 +8347,7 @@ gtk_window_on_theme_variant_changed (GtkSettings *settings,
|
||||
if (window->priv->type == GTK_WINDOW_TOPLEVEL)
|
||||
gtk_window_set_theme_variant (window);
|
||||
}
|
||||
#endif
|
||||
|
||||
static void
|
||||
gtk_window_on_composited_changed (GdkScreen *screen,
|
||||
|
||||
+234
-37
@@ -37,6 +37,7 @@
|
||||
#include "gtk/gtkfilechooserdefault.h"
|
||||
#include "gtk/gtkfilechooserentry.h"
|
||||
|
||||
#ifdef BROKEN_TESTS
|
||||
static void
|
||||
log_test (gboolean passed, const char *test_name, ...)
|
||||
{
|
||||
@@ -77,6 +78,7 @@ set_filename_timeout_cb (gpointer data)
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
static guint wait_for_idle_id = 0;
|
||||
@@ -100,6 +102,7 @@ wait_for_idle (void)
|
||||
gtk_main_iteration ();
|
||||
}
|
||||
|
||||
#ifdef BROKEN_TESTS
|
||||
static void
|
||||
test_set_filename (GtkFileChooserAction action,
|
||||
gboolean focus_button,
|
||||
@@ -230,6 +233,7 @@ test_black_box_set_current_name (gconstpointer data)
|
||||
|
||||
g_free (cwd);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* FIXME: fails in CREATE_FOLDER mode when FOLDER_NAME == "/" */
|
||||
|
||||
@@ -253,6 +257,7 @@ test_black_box_set_current_name (gconstpointer data)
|
||||
* http://bugzilla.gnome.org/show_bug.cgi?id=346058
|
||||
*/
|
||||
|
||||
#ifdef BROKEN_TESTS
|
||||
static void
|
||||
setup_set_filename_tests (void)
|
||||
{
|
||||
@@ -288,6 +293,7 @@ setup_set_current_name_tests (void)
|
||||
for (i = 0; i < G_N_ELEMENTS (tests); i++)
|
||||
g_test_add_data_func (tests[i].test_name, &tests[i], test_black_box_set_current_name);
|
||||
}
|
||||
#endif
|
||||
|
||||
typedef struct
|
||||
{
|
||||
@@ -376,6 +382,8 @@ test_file_chooser_button (gconstpointer data)
|
||||
GtkWidget *window;
|
||||
GtkWidget *fc_button;
|
||||
GtkWidget *fc_dialog;
|
||||
int iterations;
|
||||
int i;
|
||||
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
|
||||
@@ -392,54 +400,66 @@ test_file_chooser_button (gconstpointer data)
|
||||
gtk_widget_show_all (window);
|
||||
wait_for_idle ();
|
||||
|
||||
/* If there is a dialog to be opened, we actually test going through it a
|
||||
* couple of times. This ensures that any state that the button frobs for
|
||||
* each appearance of the dialog will make sense.
|
||||
*/
|
||||
if (setup->open_dialog)
|
||||
iterations = 2;
|
||||
else
|
||||
iterations = 1;
|
||||
|
||||
for (i = 0; i < iterations; i++)
|
||||
{
|
||||
GList *children;
|
||||
if (setup->open_dialog)
|
||||
{
|
||||
GList *children;
|
||||
|
||||
/* Hack our way into the file chooser button; get its GtkButton child and click it */
|
||||
children = gtk_container_get_children (GTK_CONTAINER (fc_button));
|
||||
g_assert (children && GTK_IS_BUTTON (children->data));
|
||||
gtk_button_clicked (GTK_BUTTON (children->data));
|
||||
g_list_free (children);
|
||||
/* Hack our way into the file chooser button; get its GtkButton child and click it */
|
||||
children = gtk_container_get_children (GTK_CONTAINER (fc_button));
|
||||
g_assert (children && GTK_IS_BUTTON (children->data));
|
||||
gtk_button_clicked (GTK_BUTTON (children->data));
|
||||
g_list_free (children);
|
||||
|
||||
wait_for_idle ();
|
||||
sleep_in_main_loop ();
|
||||
|
||||
/* Give me the internal dialog, damnit */
|
||||
fc_dialog = g_object_get_qdata (G_OBJECT (fc_button), delegate_get_quark ());
|
||||
g_assert (GTK_IS_FILE_CHOOSER (fc_dialog));
|
||||
g_assert (GTK_IS_DIALOG (fc_dialog));
|
||||
}
|
||||
/* Give me the internal dialog, damnit */
|
||||
fc_dialog = g_object_get_qdata (G_OBJECT (fc_button), delegate_get_quark ());
|
||||
g_assert (GTK_IS_FILE_CHOOSER (fc_dialog));
|
||||
g_assert (GTK_IS_DIALOG (fc_dialog));
|
||||
}
|
||||
|
||||
/* Okay, now frob the button and its optional dialog */
|
||||
/* Okay, now frob the button and its optional dialog */
|
||||
|
||||
if (setup->tweak_current_folder)
|
||||
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (fc_button), setup->tweak_current_folder);
|
||||
if (setup->tweak_current_folder)
|
||||
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (fc_button), setup->tweak_current_folder);
|
||||
|
||||
if (setup->tweak_filename)
|
||||
gtk_file_chooser_select_filename (GTK_FILE_CHOOSER (fc_button), setup->tweak_filename);
|
||||
if (setup->tweak_filename)
|
||||
gtk_file_chooser_select_filename (GTK_FILE_CHOOSER (fc_button), setup->tweak_filename);
|
||||
|
||||
sleep_in_main_loop ();
|
||||
sleep_in_main_loop ();
|
||||
|
||||
if (setup->open_dialog)
|
||||
{
|
||||
gtk_dialog_response (GTK_DIALOG (fc_dialog), setup->dialog_response);
|
||||
wait_for_idle ();
|
||||
}
|
||||
if (setup->open_dialog)
|
||||
{
|
||||
gtk_dialog_response (GTK_DIALOG (fc_dialog), setup->dialog_response);
|
||||
wait_for_idle ();
|
||||
}
|
||||
|
||||
if (setup->final_current_folder)
|
||||
{
|
||||
char *folder = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (fc_button));
|
||||
if (setup->final_current_folder)
|
||||
{
|
||||
char *folder = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (fc_button));
|
||||
|
||||
g_assert_cmpstr (folder, ==, setup->final_current_folder);
|
||||
g_free (folder);
|
||||
}
|
||||
g_assert_cmpstr (folder, ==, setup->final_current_folder);
|
||||
g_free (folder);
|
||||
}
|
||||
|
||||
if (setup->final_filename)
|
||||
{
|
||||
char *filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (fc_button));
|
||||
if (setup->final_filename)
|
||||
{
|
||||
char *filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (fc_button));
|
||||
|
||||
g_assert_cmpstr (filename, ==, setup->final_filename);
|
||||
g_free (filename);
|
||||
g_assert_cmpstr (filename, ==, setup->final_filename);
|
||||
g_free (filename);
|
||||
}
|
||||
}
|
||||
|
||||
gtk_widget_destroy (window);
|
||||
@@ -696,6 +716,81 @@ static FileChooserButtonTest button_tests[] =
|
||||
NULL /* final_filename */
|
||||
},
|
||||
|
||||
/* OPEN tests with dialog, cancelled via closing the dialog (not by selecting the Cancel button) */
|
||||
|
||||
{
|
||||
"open-dialog-close-1",
|
||||
GTK_FILE_CHOOSER_ACTION_OPEN,
|
||||
NULL, /* initial_current_folder */
|
||||
NULL, /* initial_filename */
|
||||
TRUE, /* open_dialog */
|
||||
NULL, /* tweak_current_folder */
|
||||
NULL, /* tweak_filename */
|
||||
GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
|
||||
NULL, /* final_current_folder */
|
||||
NULL /* final_filename */
|
||||
},
|
||||
{
|
||||
"open-dialog-close-2",
|
||||
GTK_FILE_CHOOSER_ACTION_OPEN,
|
||||
NULL, /* initial_current_folder */
|
||||
FILE_NAME, /* initial_filename */
|
||||
TRUE, /* open_dialog */
|
||||
NULL, /* tweak_current_folder */
|
||||
NULL, /* tweak_filename */
|
||||
GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
|
||||
NULL, /* final_current_folder */
|
||||
FILE_NAME /* final_filename */
|
||||
},
|
||||
{
|
||||
"open-dialog-close-3",
|
||||
GTK_FILE_CHOOSER_ACTION_OPEN,
|
||||
FOLDER_NAME, /* initial_current_folder */
|
||||
NULL, /* initial_filename */
|
||||
TRUE, /* open_dialog */
|
||||
NULL, /* tweak_current_folder */
|
||||
NULL, /* tweak_filename */
|
||||
GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
|
||||
FOLDER_NAME, /* final_current_folder */
|
||||
NULL /* final_filename */
|
||||
},
|
||||
{
|
||||
"open-dialog-close-4",
|
||||
GTK_FILE_CHOOSER_ACTION_OPEN,
|
||||
NULL, /* initial_current_folder */
|
||||
NULL, /* initial_filename */
|
||||
TRUE, /* open_dialog */
|
||||
NULL, /* tweak_current_folder */
|
||||
FILE_NAME, /* tweak_filename */
|
||||
GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
|
||||
NULL, /* final_current_folder */
|
||||
NULL /* final_filename */
|
||||
},
|
||||
{
|
||||
"open-dialog-close-5",
|
||||
GTK_FILE_CHOOSER_ACTION_OPEN,
|
||||
NULL, /* initial_current_folder */
|
||||
FILE_NAME, /* initial_filename */
|
||||
TRUE, /* open_dialog */
|
||||
NULL, /* tweak_current_folder */
|
||||
FILE_NAME_2, /* tweak_filename */
|
||||
GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
|
||||
NULL, /* final_current_folder */
|
||||
FILE_NAME /* final_filename */
|
||||
},
|
||||
{
|
||||
"open-dialog-close-6",
|
||||
GTK_FILE_CHOOSER_ACTION_OPEN,
|
||||
FOLDER_NAME, /* initial_current_folder */
|
||||
NULL, /* initial_filename */
|
||||
TRUE, /* open_dialog */
|
||||
NULL, /* tweak_current_folder */
|
||||
FILE_NAME_2, /* tweak_filename */
|
||||
GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
|
||||
FOLDER_NAME, /* final_current_folder */
|
||||
NULL /* final_filename */
|
||||
},
|
||||
|
||||
/* SELECT_FOLDER tests with dialog, cancelled */
|
||||
|
||||
{
|
||||
@@ -768,7 +863,7 @@ static FileChooserButtonTest button_tests[] =
|
||||
FOLDER_NAME_2, /* tweak_filename */
|
||||
GTK_RESPONSE_CANCEL, /* dialog_response */
|
||||
NULL, /* final_current_folder */
|
||||
FOLDER_NAME /* final_filename */
|
||||
FOLDER_NAME /* final_filename */
|
||||
},
|
||||
{
|
||||
"select-folder-dialog-cancel-7",
|
||||
@@ -795,6 +890,105 @@ static FileChooserButtonTest button_tests[] =
|
||||
FOLDER_NAME /* final_filename */
|
||||
},
|
||||
|
||||
/* SELECT_FOLDER tests with dialog, cancelled via closing the dialog (not selecting the Cancel button) */
|
||||
|
||||
{
|
||||
"select-folder-dialog-close-1",
|
||||
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
|
||||
NULL, /* initial_current_folder */
|
||||
NULL, /* initial_filename */
|
||||
TRUE, /* open_dialog */
|
||||
NULL, /* tweak_current_folder */
|
||||
NULL, /* tweak_filename */
|
||||
GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
|
||||
NULL, /* final_current_folder */
|
||||
NULL /* final_filename */
|
||||
},
|
||||
{
|
||||
"select-folder-dialog-close-2",
|
||||
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
|
||||
NULL, /* initial_current_folder */
|
||||
FOLDER_NAME, /* initial_filename */
|
||||
TRUE, /* open_dialog */
|
||||
NULL, /* tweak_current_folder */
|
||||
NULL, /* tweak_filename */
|
||||
GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
|
||||
NULL, /* final_current_folder */
|
||||
FOLDER_NAME /* final_filename */
|
||||
},
|
||||
{
|
||||
"select-folder-dialog-close-3",
|
||||
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
|
||||
FOLDER_NAME, /* initial_current_folder */
|
||||
NULL, /* initial_filename */
|
||||
TRUE, /* open_dialog */
|
||||
NULL, /* tweak_current_folder */
|
||||
NULL, /* tweak_filename */
|
||||
GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
|
||||
FOLDER_NAME, /* final_current_folder */
|
||||
NULL /* final_filename */
|
||||
},
|
||||
{
|
||||
"select-folder-dialog-close-4",
|
||||
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
|
||||
FOLDER_NAME, /* initial_current_folder */
|
||||
NULL, /* initial_filename */
|
||||
TRUE, /* open_dialog */
|
||||
NULL, /* tweak_current_folder */
|
||||
NULL, /* tweak_filename */
|
||||
GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
|
||||
NULL, /* final_current_folder */
|
||||
FOLDER_NAME /* final_filename */
|
||||
},
|
||||
{
|
||||
"select-folder-dialog-close-5",
|
||||
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
|
||||
NULL, /* initial_current_folder */
|
||||
NULL, /* initial_filename */
|
||||
TRUE, /* open_dialog */
|
||||
NULL, /* tweak_current_folder */
|
||||
FOLDER_NAME, /* tweak_filename */
|
||||
GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
|
||||
NULL, /* final_current_folder */
|
||||
NULL /* final_filename */
|
||||
},
|
||||
{
|
||||
"select-folder-dialog-close-6",
|
||||
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
|
||||
NULL, /* initial_current_folder */
|
||||
FOLDER_NAME, /* initial_filename */
|
||||
TRUE, /* open_dialog */
|
||||
NULL, /* tweak_current_folder */
|
||||
FOLDER_NAME_2, /* tweak_filename */
|
||||
GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
|
||||
NULL, /* final_current_folder */
|
||||
FOLDER_NAME /* final_filename */
|
||||
},
|
||||
{
|
||||
"select-folder-dialog-close-7",
|
||||
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
|
||||
FOLDER_NAME, /* initial_current_folder */
|
||||
NULL, /* initial_filename */
|
||||
TRUE, /* open_dialog */
|
||||
NULL, /* tweak_current_folder */
|
||||
FOLDER_NAME_2, /* tweak_filename */
|
||||
GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
|
||||
FOLDER_NAME, /* final_current_folder */
|
||||
NULL /* final_filename */
|
||||
},
|
||||
{
|
||||
"select-folder-dialog-close-8",
|
||||
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
|
||||
FOLDER_NAME, /* initial_current_folder */
|
||||
NULL, /* initial_filename */
|
||||
TRUE, /* open_dialog */
|
||||
NULL, /* tweak_current_folder */
|
||||
FOLDER_NAME_2, /* tweak_filename */
|
||||
GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
|
||||
NULL, /* final_current_folder */
|
||||
FOLDER_NAME /* final_filename */
|
||||
},
|
||||
|
||||
/* OPEN tests with dialog */
|
||||
|
||||
{
|
||||
@@ -914,6 +1108,7 @@ setup_file_chooser_button_tests (void)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef BROKEN_TESTS
|
||||
struct confirm_overwrite_closure {
|
||||
GtkWidget *chooser;
|
||||
GtkWidget *accept_button;
|
||||
@@ -1052,6 +1247,7 @@ test_confirm_overwrite (void)
|
||||
passed = passed && test_confirm_overwrite_for_path ("/etc/resolv.conf", TRUE);
|
||||
g_assert (passed);
|
||||
}
|
||||
#endif
|
||||
|
||||
static const GtkFileChooserAction open_actions[] = {
|
||||
GTK_FILE_CHOOSER_ACTION_OPEN,
|
||||
@@ -1064,6 +1260,7 @@ static const GtkFileChooserAction save_actions[] = {
|
||||
};
|
||||
|
||||
|
||||
#ifdef BROKEN_TESTS
|
||||
static gboolean
|
||||
has_action (const GtkFileChooserAction *actions,
|
||||
int n_actions,
|
||||
@@ -1116,7 +1313,7 @@ get_impl_from_dialog (GtkWidget *dialog)
|
||||
|
||||
return impl;
|
||||
}
|
||||
#ifdef BROKEN_TESTS
|
||||
|
||||
static gboolean
|
||||
test_widgets_for_current_action (GtkFileChooserDialog *dialog,
|
||||
GtkFileChooserAction expected_action)
|
||||
@@ -1439,7 +1636,6 @@ test_reload (void)
|
||||
log_test (passed, "test_reload(): set a folder explicitly before mapping");
|
||||
g_assert (passed);
|
||||
}
|
||||
#endif
|
||||
|
||||
static gboolean
|
||||
test_button_folder_states_for_action (GtkFileChooserAction action, gboolean use_dialog, gboolean set_folder_on_dialog)
|
||||
@@ -1668,6 +1864,7 @@ test_folder_switch_and_filters (void)
|
||||
|
||||
log_test (passed, "test_folder_switch_and_filters(): all filter tests");
|
||||
}
|
||||
#endif
|
||||
|
||||
int
|
||||
main (int argc,
|
||||
|
||||
+21
-2
@@ -574,6 +574,23 @@ maybe_cache_icon_data (Image *image,
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds all dir separators and replaces them with '/'.
|
||||
* This makes sure that only /-separated paths are written in cache files,
|
||||
* maintaining compatibility with theme index files that use slashes as
|
||||
* directory separators on all platforms.
|
||||
*/
|
||||
static void
|
||||
replace_backslashes_with_slashes (gchar *path)
|
||||
{
|
||||
size_t i;
|
||||
if (path == NULL)
|
||||
return;
|
||||
for (i = 0; path[i]; i++)
|
||||
if (G_IS_DIR_SEPARATOR (path[i]))
|
||||
path[i] = '/';
|
||||
}
|
||||
|
||||
static GList *
|
||||
scan_directory (const gchar *base_path,
|
||||
const gchar *subdir,
|
||||
@@ -588,7 +605,7 @@ scan_directory (const gchar *base_path,
|
||||
gboolean dir_added = FALSE;
|
||||
guint dir_index = 0xffff;
|
||||
|
||||
dir_path = g_build_filename (base_path, subdir, NULL);
|
||||
dir_path = g_build_path ("/", base_path, subdir, NULL);
|
||||
|
||||
/* FIXME: Use the gerror */
|
||||
dir = g_dir_open (dir_path, 0, NULL);
|
||||
@@ -607,13 +624,14 @@ scan_directory (const gchar *base_path,
|
||||
gchar *basename, *dot;
|
||||
|
||||
path = g_build_filename (dir_path, name, NULL);
|
||||
|
||||
retval = g_file_test (path, G_FILE_TEST_IS_DIR);
|
||||
if (retval)
|
||||
{
|
||||
gchar *subsubdir;
|
||||
|
||||
if (subdir)
|
||||
subsubdir = g_build_filename (subdir, name, NULL);
|
||||
subsubdir = g_build_path ("/", subdir, name, NULL);
|
||||
else
|
||||
subsubdir = g_strdup (name);
|
||||
directories = scan_directory (base_path, subsubdir, files,
|
||||
@@ -1736,6 +1754,7 @@ main (int argc, char **argv)
|
||||
if (!force_update && is_cache_up_to_date (path))
|
||||
return 0;
|
||||
|
||||
replace_backslashes_with_slashes (path);
|
||||
build_cache (path);
|
||||
|
||||
if (strcmp (var_name, "-") != 0)
|
||||
|
||||
@@ -2067,11 +2067,15 @@ cups_request_printer_list_cb (GtkPrintBackendCups *cups_backend,
|
||||
}
|
||||
|
||||
/* remove name from checklist if it was found */
|
||||
node = g_list_find_custom (removed_printer_checklist,
|
||||
info->printer_name,
|
||||
(GCompareFunc) find_printer);
|
||||
removed_printer_checklist = g_list_delete_link (removed_printer_checklist,
|
||||
node);
|
||||
if (removed_printer_checklist != NULL)
|
||||
{
|
||||
if (node = g_list_find_custom (removed_printer_checklist,
|
||||
info->printer_name,
|
||||
(GCompareFunc) find_printer))
|
||||
removed_printer_checklist =
|
||||
g_list_delete_link (removed_printer_checklist,
|
||||
node);
|
||||
}
|
||||
|
||||
printer = gtk_print_backend_find_printer (backend, info->printer_name);
|
||||
if (!printer)
|
||||
|
||||
+691
-679
File diff suppressed because it is too large
Load Diff
+761
-743
File diff suppressed because it is too large
Load Diff
+757
-723
File diff suppressed because it is too large
Load Diff
+769
-913
File diff suppressed because it is too large
Load Diff
+748
-726
File diff suppressed because it is too large
Load Diff
+634
-595
File diff suppressed because it is too large
Load Diff
+634
-595
File diff suppressed because it is too large
Load Diff
@@ -3,7 +3,6 @@
|
||||
# Copyright (C) 2003, 2004, 2005 Miloslav Trmac <mitr@volny.cz>.
|
||||
# Copyright (C) 2006 Lukas Novotny <lukasnov@cvs.gnome.org>.
|
||||
# This file is distributed under the same license as the gtk+ package.
|
||||
#
|
||||
# Stanislav Brabec <utx@k332.feld.cvut.cz>, 1998.
|
||||
# Jiří Pavlovský <pavlovsk@ff.cuni.cz>, 1998.
|
||||
# Jiří Lebl <jirka@5z.com>, 2002.
|
||||
@@ -19,8 +18,8 @@ msgstr ""
|
||||
"Project-Id-Version: gtk+\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk"
|
||||
"%2b&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2013-02-14 00:13+0000\n"
|
||||
"PO-Revision-Date: 2013-02-17 19:59+0100\n"
|
||||
"POT-Creation-Date: 2013-01-19 19:42+0000\n"
|
||||
"PO-Revision-Date: 2013-02-22 22:03+0100\n"
|
||||
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
|
||||
"Language-Team: Czech <gnome-cs-list@gnome.org>\n"
|
||||
"Language: cs\n"
|
||||
@@ -466,146 +465,6 @@ msgstr[0] "Otevírání %d položky"
|
||||
msgstr[1] "Otevírání %d položek"
|
||||
msgstr[2] "Otevírání %d položek"
|
||||
|
||||
#: ../gtk/a11y/gtkbooleancellaccessible.c:43
|
||||
msgctxt "Action description"
|
||||
msgid "Toggles the cell"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/a11y/gtkbooleancellaccessible.c:63
|
||||
#: ../gtk/a11y/gtkswitchaccessible.c:101
|
||||
msgctxt "Action name"
|
||||
msgid "Toggle"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/a11y/gtkbuttonaccessible.c:341
|
||||
#: ../gtk/a11y/gtkmenuitemaccessible.c:436
|
||||
msgctxt "Action name"
|
||||
msgid "Click"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/a11y/gtkbuttonaccessible.c:350
|
||||
msgctxt "Action description"
|
||||
msgid "Clicks the button"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/a11y/gtkcellaccessible.c:258
|
||||
msgctxt "Action name"
|
||||
msgid "Expand or contract"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/a11y/gtkcellaccessible.c:260
|
||||
#, fuzzy
|
||||
#| msgctxt "Stock label"
|
||||
#| msgid "_Edit"
|
||||
msgctxt "Action name"
|
||||
msgid "Edit"
|
||||
msgstr "_Upravit"
|
||||
|
||||
#: ../gtk/a11y/gtkcellaccessible.c:262
|
||||
#: ../gtk/a11y/gtkcolorswatchaccessible.c:72
|
||||
#: ../gtk/a11y/gtkentryaccessible.c:1541
|
||||
#: ../gtk/a11y/gtkexpanderaccessible.c:281
|
||||
msgctxt "Action name"
|
||||
msgid "Activate"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/a11y/gtkcellaccessible.c:275
|
||||
msgctxt "Action description"
|
||||
msgid "Expands or contracts the row in the tree view containing this cell"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/a11y/gtkcellaccessible.c:277
|
||||
msgctxt "Action description"
|
||||
msgid "Creates a widget in which the contents of the cell can be edited"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/a11y/gtkcellaccessible.c:279
|
||||
msgctxt "Action description"
|
||||
msgid "Activates the cell"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/a11y/gtkcolorswatchaccessible.c:71
|
||||
#, fuzzy
|
||||
#| msgid "_Select"
|
||||
msgctxt "Action name"
|
||||
msgid "Select"
|
||||
msgstr "_Vybrat"
|
||||
|
||||
#: ../gtk/a11y/gtkcolorswatchaccessible.c:73
|
||||
#, fuzzy
|
||||
#| msgid "_Customize"
|
||||
msgctxt "Action name"
|
||||
msgid "Customize"
|
||||
msgstr "_Upravit"
|
||||
|
||||
#: ../gtk/a11y/gtkcolorswatchaccessible.c:84
|
||||
#, fuzzy
|
||||
#| msgid "Select a Color"
|
||||
msgctxt "Action description"
|
||||
msgid "Selects the color"
|
||||
msgstr "Vyberte barvu"
|
||||
|
||||
#: ../gtk/a11y/gtkcolorswatchaccessible.c:85
|
||||
#, fuzzy
|
||||
#| msgid "Brightness of the color."
|
||||
msgctxt "Action description"
|
||||
msgid "Activates the color"
|
||||
msgstr "Jas barvy."
|
||||
|
||||
#: ../gtk/a11y/gtkcolorswatchaccessible.c:86
|
||||
#, fuzzy
|
||||
#| msgid "Custom color %d: %s"
|
||||
msgctxt "Action description"
|
||||
msgid "Customizes the color"
|
||||
msgstr "Vlastní barva %d: %s"
|
||||
|
||||
#: ../gtk/a11y/gtkcomboboxaccessible.c:313
|
||||
msgctxt "Action name"
|
||||
msgid "Press"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/a11y/gtkcomboboxaccessible.c:322
|
||||
#, fuzzy
|
||||
#| msgid "Decreases the volume"
|
||||
msgctxt "Action description"
|
||||
msgid "Presses the combobox"
|
||||
msgstr "Sníží hlasitost"
|
||||
|
||||
#: ../gtk/a11y/gtkentryaccessible.c:1550
|
||||
msgctxt "Action description"
|
||||
msgid "Activates the entry"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/a11y/gtkexpanderaccessible.c:290
|
||||
msgctxt "Action description"
|
||||
msgid "Activates the expander"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/a11y/gtkmenuitemaccessible.c:445
|
||||
msgctxt "Action description"
|
||||
msgid "Clicks the menuitem"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/a11y/gtkscalebuttonaccessible.c:140
|
||||
msgctxt "Action description"
|
||||
msgid "Pops up the slider"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/a11y/gtkscalebuttonaccessible.c:142
|
||||
msgctxt "Action description"
|
||||
msgid "Dismisses the slider"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/a11y/gtkscalebuttonaccessible.c:170
|
||||
msgctxt "Action name"
|
||||
msgid "Popup"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/a11y/gtkscalebuttonaccessible.c:172
|
||||
msgctxt "Action name"
|
||||
msgid "Dismiss"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/a11y/gtkspinneraccessible.c:39
|
||||
msgctxt "throbbing progress animation widget"
|
||||
msgid "Spinner"
|
||||
@@ -615,20 +474,15 @@ msgstr "Animace průběhu"
|
||||
msgid "Provides visual indication of progress"
|
||||
msgstr "Poskytuje vizuální indikaci průběhu"
|
||||
|
||||
#: ../gtk/a11y/gtkswitchaccessible.c:63
|
||||
#: ../gtk/a11y/gtkswitchaccessible.c:62
|
||||
msgctxt "light switch widget"
|
||||
msgid "Switch"
|
||||
msgstr "Přepnout"
|
||||
|
||||
#: ../gtk/a11y/gtkswitchaccessible.c:64
|
||||
#: ../gtk/a11y/gtkswitchaccessible.c:63
|
||||
msgid "Switches between on and off states"
|
||||
msgstr "Přepíná mezi stavem zapnuto a vypnuto"
|
||||
|
||||
#: ../gtk/a11y/gtkswitchaccessible.c:110
|
||||
msgctxt "Action description"
|
||||
msgid "Toggles the switch"
|
||||
msgstr ""
|
||||
|
||||
#: ../gtk/deprecated/gtkcolorsel.c:425
|
||||
msgid ""
|
||||
"Select the color you want from the outer ring. Select the darkness or "
|
||||
@@ -836,7 +690,7 @@ msgstr "Nelze zobrazit odkaz"
|
||||
|
||||
#: ../gtk/gtkaboutdialog.c:1017
|
||||
msgid "Website"
|
||||
msgstr ""
|
||||
msgstr "Webové stránky"
|
||||
|
||||
#: ../gtk/gtkaboutdialog.c:1071
|
||||
#, c-format
|
||||
@@ -930,8 +784,6 @@ msgid "Backslash"
|
||||
msgstr "Zpětné lomítko"
|
||||
|
||||
#: ../gtk/gtkappchooserbutton.c:290
|
||||
#, fuzzy
|
||||
#| msgid "Other application..."
|
||||
msgid "Other application…"
|
||||
msgstr "Další aplikace…"
|
||||
|
||||
@@ -1174,8 +1026,6 @@ msgstr "Neplatné"
|
||||
#. * acelerator.
|
||||
#.
|
||||
#: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:747
|
||||
#, fuzzy
|
||||
#| msgid "New accelerator..."
|
||||
msgid "New accelerator…"
|
||||
msgstr "Nová klávesová zkratka…"
|
||||
|
||||
@@ -1397,7 +1247,7 @@ msgstr "Vlastní"
|
||||
msgid "Create custom color"
|
||||
msgstr "Vytvořit vlastní barvu"
|
||||
|
||||
#: ../gtk/gtkcolorchooserwidget.c:542
|
||||
#: ../gtk/gtkcolorchooserwidget.c:543
|
||||
#, c-format
|
||||
msgid "Custom color %d: %s"
|
||||
msgstr "Vlastní barva %d: %s"
|
||||
@@ -1478,8 +1328,6 @@ msgid "mm"
|
||||
msgstr "mm"
|
||||
|
||||
#: ../gtk/gtkcustompaperunixdialog.c:605
|
||||
#, fuzzy
|
||||
#| msgid "Margins from Printer..."
|
||||
msgid "Margins from Printer…"
|
||||
msgstr "Okraje z tiskárny…"
|
||||
|
||||
@@ -1520,11 +1368,11 @@ msgstr "P_ravý:"
|
||||
msgid "Paper Margins"
|
||||
msgstr "Okraje papíru"
|
||||
|
||||
#: ../gtk/gtkentry.c:9127 ../gtk/gtktextview.c:8598
|
||||
#: ../gtk/gtkentry.c:9127 ../gtk/gtktextview.c:8591
|
||||
msgid "Input _Methods"
|
||||
msgstr "Vstupní _metody"
|
||||
|
||||
#: ../gtk/gtkentry.c:9141 ../gtk/gtktextview.c:8612
|
||||
#: ../gtk/gtkentry.c:9141 ../gtk/gtktextview.c:8605
|
||||
msgid "_Insert Unicode Control Character"
|
||||
msgstr "Vloži_t řídící znak Unicode"
|
||||
|
||||
@@ -1577,7 +1425,7 @@ msgstr "Funkce Caps Lock je zapnuta"
|
||||
msgid "Select a File"
|
||||
msgstr "Vyberte soubor"
|
||||
|
||||
#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1825
|
||||
#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1820
|
||||
msgid "Desktop"
|
||||
msgstr "Pracovní plocha"
|
||||
|
||||
@@ -1585,9 +1433,7 @@ msgstr "Pracovní plocha"
|
||||
msgid "(None)"
|
||||
msgstr "(Žádný)"
|
||||
|
||||
#: ../gtk/gtkfilechooserbutton.c:2202
|
||||
#, fuzzy
|
||||
#| msgid "Other..."
|
||||
#: ../gtk/gtkfilechooserbutton.c:2046
|
||||
msgid "Other…"
|
||||
msgstr "Jiné…"
|
||||
|
||||
@@ -1595,23 +1441,23 @@ msgstr "Jiné…"
|
||||
msgid "Type name of new folder"
|
||||
msgstr "Zadání názvu nové složky"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:954
|
||||
#: ../gtk/gtkfilechooserdefault.c:971
|
||||
msgid "Could not retrieve information about the file"
|
||||
msgstr "O souboru nelze získat informace"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:965
|
||||
#: ../gtk/gtkfilechooserdefault.c:982
|
||||
msgid "Could not add a bookmark"
|
||||
msgstr "Nelze přidat záložku"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:976
|
||||
#: ../gtk/gtkfilechooserdefault.c:993
|
||||
msgid "Could not remove bookmark"
|
||||
msgstr "Nelze odstranit záložku"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:987
|
||||
#: ../gtk/gtkfilechooserdefault.c:1004
|
||||
msgid "The folder could not be created"
|
||||
msgstr "Složku nelze vytvořit"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:1000
|
||||
#: ../gtk/gtkfilechooserdefault.c:1017
|
||||
msgid ""
|
||||
"The folder could not be created, as a file with the same name already "
|
||||
"exists. Try using a different name for the folder, or rename the file first."
|
||||
@@ -1619,16 +1465,16 @@ msgstr ""
|
||||
"Složku nelze vytvořit, protože již existuje soubor se stejným názvem. Zkuste "
|
||||
"pro složku použít jiný název, nebo nejprve přejmenovat soubor."
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:1014
|
||||
#: ../gtk/gtkfilechooserdefault.c:1031
|
||||
msgid "You need to choose a valid filename."
|
||||
msgstr "Vybraný název souboru musí být platný."
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:1017
|
||||
#: ../gtk/gtkfilechooserdefault.c:1034
|
||||
#, c-format
|
||||
msgid "Cannot create a file under %s as it is not a folder"
|
||||
msgstr "V %s nelze vytvořit soubor, jelikož se nejedná o složku"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:1029
|
||||
#: ../gtk/gtkfilechooserdefault.c:1046
|
||||
msgid ""
|
||||
"You may only select folders. The item that you selected is not a folder; "
|
||||
"try using a different item."
|
||||
@@ -1636,11 +1482,11 @@ msgstr ""
|
||||
"Vybrat lze pouze složky. Vybraná položka není složkou; zkuste použít jinou "
|
||||
"položku."
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:1039
|
||||
#: ../gtk/gtkfilechooserdefault.c:1056
|
||||
msgid "Invalid file name"
|
||||
msgstr "Neplatný název souboru"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:1049
|
||||
#: ../gtk/gtkfilechooserdefault.c:1066
|
||||
msgid "The folder contents could not be displayed"
|
||||
msgstr "Obsah složky nelze zobrazit"
|
||||
|
||||
@@ -1648,210 +1494,208 @@ msgstr "Obsah složky nelze zobrazit"
|
||||
#. * is a hostname. Nautilus and the panel contain the same string
|
||||
#. * to translate.
|
||||
#.
|
||||
#: ../gtk/gtkfilechooserdefault.c:1575
|
||||
#: ../gtk/gtkfilechooserdefault.c:1592
|
||||
#, c-format
|
||||
msgid "%1$s on %2$s"
|
||||
msgstr "%1$s na %2$s"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:1724
|
||||
#: ../gtk/gtkfilechooserdefault.c:1741
|
||||
msgid "Search"
|
||||
msgstr "Hledat"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:1768 ../gtk/gtkfilechooserdefault.c:4996
|
||||
#: ../gtk/gtkfilechooserdefault.c:1765 ../gtk/gtkfilechooserdefault.c:4991
|
||||
msgid "Recently Used"
|
||||
msgstr "Naposledy použité"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:2369
|
||||
#: ../gtk/gtkfilechooserdefault.c:2364
|
||||
msgid "Select which types of files are shown"
|
||||
msgstr "Výběr zobrazených typů souborů"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:2728
|
||||
#: ../gtk/gtkfilechooserdefault.c:2723
|
||||
#, c-format
|
||||
msgid "Add the folder '%s' to the bookmarks"
|
||||
msgstr "Přidá složku „%s“ mezi záložky"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:2772
|
||||
#: ../gtk/gtkfilechooserdefault.c:2767
|
||||
#, c-format
|
||||
msgid "Add the current folder to the bookmarks"
|
||||
msgstr "Přidá aktuální složku mezi záložky"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:2774
|
||||
#: ../gtk/gtkfilechooserdefault.c:2769
|
||||
#, c-format
|
||||
msgid "Add the selected folders to the bookmarks"
|
||||
msgstr "Přidá zvolené složky mezi záložky"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:2812
|
||||
#: ../gtk/gtkfilechooserdefault.c:2807
|
||||
#, c-format
|
||||
msgid "Remove the bookmark '%s'"
|
||||
msgstr "Odstraní záložku „%s“"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:2814
|
||||
#: ../gtk/gtkfilechooserdefault.c:2809
|
||||
#, c-format
|
||||
msgid "Bookmark '%s' cannot be removed"
|
||||
msgstr "Záložka „%s“ nemůže být odstraněna"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:2821 ../gtk/gtkfilechooserdefault.c:3707
|
||||
#: ../gtk/gtkfilechooserdefault.c:2816 ../gtk/gtkfilechooserdefault.c:3702
|
||||
msgid "Remove the selected bookmark"
|
||||
msgstr "Odstraní zvolenou záložku"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:3385
|
||||
#: ../gtk/gtkfilechooserdefault.c:3380
|
||||
msgid "Remove"
|
||||
msgstr "Odstranit"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:3394
|
||||
#, fuzzy
|
||||
#| msgid "Rename..."
|
||||
#: ../gtk/gtkfilechooserdefault.c:3389
|
||||
msgid "Rename…"
|
||||
msgstr "Přejmenovat…"
|
||||
|
||||
#. Accessible object name for the file chooser's shortcuts pane
|
||||
#: ../gtk/gtkfilechooserdefault.c:3558
|
||||
#: ../gtk/gtkfilechooserdefault.c:3553
|
||||
msgid "Places"
|
||||
msgstr "Místa"
|
||||
|
||||
#. Column header for the file chooser's shortcuts pane
|
||||
#: ../gtk/gtkfilechooserdefault.c:3615
|
||||
#: ../gtk/gtkfilechooserdefault.c:3610
|
||||
msgid "_Places"
|
||||
msgstr "_Místa"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:3695
|
||||
#: ../gtk/gtkfilechooserdefault.c:3690
|
||||
msgid "Add the selected folder to the Bookmarks"
|
||||
msgstr "Přidá zvolenou složku mezi záložky"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:3956
|
||||
#: ../gtk/gtkfilechooserdefault.c:3951
|
||||
msgid "Could not select file"
|
||||
msgstr "Nelze vybrat soubor"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:4181
|
||||
#: ../gtk/gtkfilechooserdefault.c:4176
|
||||
msgid "_Visit this file"
|
||||
msgstr "Podí_vat se na tento soubor"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:4184
|
||||
#: ../gtk/gtkfilechooserdefault.c:4179
|
||||
msgid "_Copy file’s location"
|
||||
msgstr "Kopírovat _umístění souboru"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:4187
|
||||
#: ../gtk/gtkfilechooserdefault.c:4182
|
||||
msgid "_Add to Bookmarks"
|
||||
msgstr "_Přidat mezi záložky"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:4194
|
||||
#: ../gtk/gtkfilechooserdefault.c:4189
|
||||
msgid "Show _Hidden Files"
|
||||
msgstr "Zobrazovat _skryté soubory"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:4197
|
||||
#: ../gtk/gtkfilechooserdefault.c:4192
|
||||
msgid "Show _Size Column"
|
||||
msgstr "Z_obrazovat sloupec Velikost"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:4422
|
||||
#: ../gtk/gtkfilechooserdefault.c:4417
|
||||
msgid "Files"
|
||||
msgstr "Soubory"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:4473
|
||||
#: ../gtk/gtkfilechooserdefault.c:4468
|
||||
msgid "Name"
|
||||
msgstr "Název"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:4496
|
||||
#: ../gtk/gtkfilechooserdefault.c:4491
|
||||
msgid "Size"
|
||||
msgstr "Velikost"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:4510
|
||||
#: ../gtk/gtkfilechooserdefault.c:4505
|
||||
msgid "Modified"
|
||||
msgstr "Změněno"
|
||||
|
||||
#. Label
|
||||
#: ../gtk/gtkfilechooserdefault.c:4603
|
||||
#: ../gtk/gtkfilechooserdefault.c:4598
|
||||
msgid "_Name:"
|
||||
msgstr "_Název:"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:4834
|
||||
#: ../gtk/gtkfilechooserdefault.c:4829
|
||||
msgid "Type a file name"
|
||||
msgstr "Zadání názvu souboru"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:4881 ../gtk/gtkfilechooserdefault.c:4892
|
||||
#: ../gtk/gtkfilechooserdefault.c:4876 ../gtk/gtkfilechooserdefault.c:4887
|
||||
msgid "Please select a folder below"
|
||||
msgstr "Vyberte prosím složku níže"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:4887
|
||||
#: ../gtk/gtkfilechooserdefault.c:4882
|
||||
msgid "Please type a file name"
|
||||
msgstr "Zadejte prosím název souboru"
|
||||
|
||||
#. Create Folder
|
||||
#: ../gtk/gtkfilechooserdefault.c:4958
|
||||
#: ../gtk/gtkfilechooserdefault.c:4953
|
||||
msgid "Create Fo_lder"
|
||||
msgstr "V_ytvořit složku"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:5006
|
||||
#: ../gtk/gtkfilechooserdefault.c:5001
|
||||
msgid "Search:"
|
||||
msgstr "Hledat:"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:5057
|
||||
#: ../gtk/gtkfilechooserdefault.c:5052
|
||||
msgid "_Location:"
|
||||
msgstr "_Umístění:"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:5507
|
||||
#: ../gtk/gtkfilechooserdefault.c:5502
|
||||
msgid "Save in _folder:"
|
||||
msgstr "U_ložit do složky:"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:5509
|
||||
#: ../gtk/gtkfilechooserdefault.c:5504
|
||||
msgid "Create in _folder:"
|
||||
msgstr "Vytvořit ve složc_e:"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:6521
|
||||
#: ../gtk/gtkfilechooserdefault.c:6597
|
||||
#, c-format
|
||||
msgid "Could not read the contents of %s"
|
||||
msgstr "Nelze přečíst obsah %s"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:6525
|
||||
#: ../gtk/gtkfilechooserdefault.c:6601
|
||||
msgid "Could not read the contents of the folder"
|
||||
msgstr "Nelze přečíst obsah složky"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:6618 ../gtk/gtkfilechooserdefault.c:6686
|
||||
#: ../gtk/gtkfilechooserdefault.c:6866
|
||||
#: ../gtk/gtkfilechooserdefault.c:6694 ../gtk/gtkfilechooserdefault.c:6762
|
||||
#: ../gtk/gtkfilechooserdefault.c:6942
|
||||
msgid "Unknown"
|
||||
msgstr "Neznámé"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:6633
|
||||
#: ../gtk/gtkfilechooserdefault.c:6709
|
||||
msgid "%H:%M"
|
||||
msgstr "%H:%M"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:6635
|
||||
#: ../gtk/gtkfilechooserdefault.c:6711
|
||||
msgid "Yesterday at %H:%M"
|
||||
msgstr "Včera v %H:%M"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:7337
|
||||
#: ../gtk/gtkfilechooserdefault.c:7413
|
||||
msgid "Cannot change to folder because it is not local"
|
||||
msgstr "Nelze přejít do složky, protože není místní"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:7934 ../gtk/gtkfilechooserdefault.c:7955
|
||||
#: ../gtk/gtkfilechooserdefault.c:8020 ../gtk/gtkfilechooserdefault.c:8041
|
||||
#, c-format
|
||||
msgid "Shortcut %s already exists"
|
||||
msgstr "Zkratka %s již existuje"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:8045
|
||||
#: ../gtk/gtkfilechooserdefault.c:8131
|
||||
#, c-format
|
||||
msgid "Shortcut %s does not exist"
|
||||
msgstr "Zkratka %s neexistuje"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:8292 ../gtk/gtkprintunixdialog.c:548
|
||||
#: ../gtk/gtkfilechooserdefault.c:8377 ../gtk/gtkprintunixdialog.c:548
|
||||
#, c-format
|
||||
msgid "A file named \"%s\" already exists. Do you want to replace it?"
|
||||
msgstr "Soubor nazvaný „%s“ již existuje. Chcete jej nahradit?"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:8295 ../gtk/gtkprintunixdialog.c:552
|
||||
#: ../gtk/gtkfilechooserdefault.c:8380 ../gtk/gtkprintunixdialog.c:552
|
||||
#, c-format
|
||||
msgid ""
|
||||
"The file already exists in \"%s\". Replacing it will overwrite its contents."
|
||||
msgstr "V „%s“ již tento soubor existuje. Jeho nahrazení přepíše celý obsah."
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:8300 ../gtk/gtkprintunixdialog.c:559
|
||||
#: ../gtk/gtkfilechooserdefault.c:8385 ../gtk/gtkprintunixdialog.c:559
|
||||
msgid "_Replace"
|
||||
msgstr "Na_hradit"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:9107
|
||||
#: ../gtk/gtkfilechooserdefault.c:9192
|
||||
msgid "Could not start the search process"
|
||||
msgstr "Nelze spustit proces hledání"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:9108
|
||||
#: ../gtk/gtkfilechooserdefault.c:9193
|
||||
msgid ""
|
||||
"The program was not able to create a connection to the indexer daemon. "
|
||||
"Please make sure it is running."
|
||||
@@ -1859,11 +1703,11 @@ msgstr ""
|
||||
"Program nebyl schopen vytvořit spojení s indexovacím démonem. Ujistěte se "
|
||||
"prosím, že běží."
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:9122
|
||||
#: ../gtk/gtkfilechooserdefault.c:9207
|
||||
msgid "Could not send the search request"
|
||||
msgstr "Nelze odeslat vyhledávací požadavek"
|
||||
|
||||
#: ../gtk/gtkfilechooserdefault.c:9732
|
||||
#: ../gtk/gtkfilechooserdefault.c:9817
|
||||
#, c-format
|
||||
msgid "Could not mount %s"
|
||||
msgstr "Nelze připojit %s"
|
||||
@@ -1943,8 +1787,6 @@ msgid "Copy _Link Address"
|
||||
msgstr "Ko_pírovat adresu odkazu"
|
||||
|
||||
#: ../gtk/gtk-launch.c:71
|
||||
#, fuzzy
|
||||
#| msgid "APPLICATION [URI...] - launch an APPLICATION with URI."
|
||||
msgid "APPLICATION [URI…] — launch an APPLICATION with URI."
|
||||
msgstr "APLIKACE [URI...] - spustit APLIKACI s URI."
|
||||
|
||||
@@ -1966,7 +1808,7 @@ msgstr "Chyba při analýze voleb příkazové řádky: %s\n"
|
||||
#: ../gtk/gtk-launch.c:89 ../gtk/gtk-launch.c:102
|
||||
#, c-format
|
||||
msgid "Try \"%s --help\" for more information."
|
||||
msgstr "Více informací viz „%s --help“."
|
||||
msgstr "Více informací viz \"%s --help\"."
|
||||
|
||||
#. Translators: the %s is the program name. This error message
|
||||
#. means the user is calling gtk-launch without any argument.
|
||||
@@ -1979,7 +1821,7 @@ msgstr "%s: chybí název aplikace"
|
||||
#, c-format
|
||||
msgid "Creating AppInfo from id not supported on non unix operating systems"
|
||||
msgstr ""
|
||||
"Vytvoření AppInfo z ID není podporováno na jiných než unixových systémech"
|
||||
"Vytváření AppInfo z ID není podporováno na jiných než unixových systémech"
|
||||
|
||||
#. Translators: the first %s is the program name, the second one
|
||||
#. is the application name.
|
||||
@@ -2209,10 +2051,8 @@ msgstr ""
|
||||
" Dolní: %s %s"
|
||||
|
||||
#: ../gtk/gtkpagesetupunixdialog.c:845 ../gtk/gtkprintunixdialog.c:3329
|
||||
#, fuzzy
|
||||
#| msgid "Manage Custom Sizes"
|
||||
msgid "Manage Custom Sizes…"
|
||||
msgstr "Správa vlastních velikostí"
|
||||
msgstr "Správa vlastních velikostí…"
|
||||
|
||||
#: ../gtk/gtkpagesetupunixdialog.c:896
|
||||
msgid "_Format for:"
|
||||
@@ -2394,8 +2234,6 @@ msgid "Getting printer information failed"
|
||||
msgstr "Získávání informací o tiskárně selhalo"
|
||||
|
||||
#: ../gtk/gtkprintunixdialog.c:1916
|
||||
#, fuzzy
|
||||
#| msgid "Getting printer information..."
|
||||
msgid "Getting printer information…"
|
||||
msgstr "Získávají se informace o tiskárně…"
|
||||
|
||||
@@ -2686,31 +2524,31 @@ msgstr "Z_a:"
|
||||
msgid "Job"
|
||||
msgstr "Úloha"
|
||||
|
||||
#: ../gtk/gtkprintunixdialog.c:3751
|
||||
#: ../gtk/gtkprintunixdialog.c:3753
|
||||
msgid "Advanced"
|
||||
msgstr "Pokročilé"
|
||||
|
||||
#. Translators: this will appear as tab label in print dialog.
|
||||
#: ../gtk/gtkprintunixdialog.c:3789
|
||||
#: ../gtk/gtkprintunixdialog.c:3791
|
||||
msgid "Image Quality"
|
||||
msgstr "Kvalita obrazu"
|
||||
|
||||
#. Translators: this will appear as tab label in print dialog.
|
||||
#: ../gtk/gtkprintunixdialog.c:3793
|
||||
#: ../gtk/gtkprintunixdialog.c:3795
|
||||
msgid "Color"
|
||||
msgstr "Barva"
|
||||
|
||||
#. Translators: this will appear as tab label in print dialog.
|
||||
#. It's a typographical term, as in "Binding and finishing"
|
||||
#: ../gtk/gtkprintunixdialog.c:3798
|
||||
#: ../gtk/gtkprintunixdialog.c:3800
|
||||
msgid "Finishing"
|
||||
msgstr "Dokončování"
|
||||
|
||||
#: ../gtk/gtkprintunixdialog.c:3808
|
||||
#: ../gtk/gtkprintunixdialog.c:3810
|
||||
msgid "Some of the settings in the dialog conflict"
|
||||
msgstr "Některá nastavení v dialogu jsou v konfliktu"
|
||||
|
||||
#: ../gtk/gtkprintunixdialog.c:3834
|
||||
#: ../gtk/gtkprintunixdialog.c:3836
|
||||
msgid "Print"
|
||||
msgstr "Tisk"
|
||||
|
||||
@@ -2799,15 +2637,15 @@ msgctxt "recent menu label"
|
||||
msgid "%d. %s"
|
||||
msgstr "%d. %s"
|
||||
|
||||
#: ../gtk/gtkrecentmanager.c:1035 ../gtk/gtkrecentmanager.c:1048
|
||||
#: ../gtk/gtkrecentmanager.c:1185 ../gtk/gtkrecentmanager.c:1195
|
||||
#: ../gtk/gtkrecentmanager.c:1247 ../gtk/gtkrecentmanager.c:1256
|
||||
#: ../gtk/gtkrecentmanager.c:1271
|
||||
#: ../gtk/gtkrecentmanager.c:1010 ../gtk/gtkrecentmanager.c:1023
|
||||
#: ../gtk/gtkrecentmanager.c:1160 ../gtk/gtkrecentmanager.c:1170
|
||||
#: ../gtk/gtkrecentmanager.c:1222 ../gtk/gtkrecentmanager.c:1231
|
||||
#: ../gtk/gtkrecentmanager.c:1246
|
||||
#, c-format
|
||||
msgid "Unable to find an item with URI '%s'"
|
||||
msgstr "Nelze nalézt položku s URI „%s“"
|
||||
|
||||
#: ../gtk/gtkrecentmanager.c:2471
|
||||
#: ../gtk/gtkrecentmanager.c:2446
|
||||
#, c-format
|
||||
msgid "No registered application with name '%s' for item with URI '%s' found"
|
||||
msgstr ""
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user