Click here to Skip to main content
11,481,850 members (64,490 online)
Click here to Skip to main content
Articles » Languages » C# » Applications » Downloads
Add your own
alternative version

Window Tabifier

, 29 Mar 2008 CPOL 199.4K 7.2K 281
A simple application for hosting several Windows in one parent window
windowtabifier_demo.zip
WindowTabifier_demo
About.dll
DragAndDropFileComponent.dll
TabStrip.dll
Window Tabifier.exe
windowtabifier_src.zip
Window Tabifier
Window Tabifier
bin
DLL's
About.dll
DragAndDropFileComponent.dll
TabStrip.dll
documents-32x32.png
folder-documents.ico
Properties
Settings.settings
Thumbs.db
Window Tabifier.csproj.user
Window.cd
Windows-Desktop-32x32.png
windowtabifier_srcvs2005.zip
WindowTabifier_srcVS2005
Window Tabifier
bin
DLLs
About.dll
DragAndDropFileComponent.dll
TabStrip.dll
documents-32x32.png
Properties
Settings.settings
Resources
folder-documents.ico
Thumbs.db
Thumbs.db
Window Tabifier.csproj.user
window.cd
Windows-Desktop-32x32.png
windowtabifier_srcvs2008.zip
WindowTabifier_srcVS2008
Window Tabifier
bin
DLLs
About.dll
DragAndDropFileComponent.dll
TabStrip.dll
documents-32x32.png
folder-documents.ico
Properties
Settings.settings
Thumbs.db
Window Tabifier.csproj.user
window.cd
Windows-Desktop-32x32.png
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <data name="label2.Text" xml:space="preserve">
    <value>This program allows to host several open windows in one parent window so that you can easily access and navigate between them, as well as clean up space in taskbar. To add existing open windows to host window click the 'Add open windows to this window' button above. To automatically open files in new tabs either click the 'Open file in new tab' button or just drag and drop them below. You can navigate between tabs by clicking ctrl+1, ctrl+2, etc. If you want to tab all open windows, just click the tab all windows in the context menu.</value>
  </data>
  <metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>134, 17</value>
  </metadata>
  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  <data name="AddWindowButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        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
        tRzEAAAAAElFTkSuQmCC
</value>
  </data>
  <data name="OpenFileButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        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
</value>
  </data>
  <metadata name="dragAndDropFile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>233, 17</value>
  </metadata>
  <metadata name="tm.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>367, 17</value>
  </metadata>
  <metadata name="hostTrayIcon.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>17, 17</value>
  </metadata>
</root>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Giorgi Dalakishvili
Software Developer
Georgia Georgia
No Biography provided
Follow on   Google+

| Advertise | Privacy | Terms of Use | Mobile
Web01 | 2.8.150520.1 | Last Updated 29 Mar 2008
Article Copyright 2008 by Giorgi Dalakishvili
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid