Hot File

Mac OS X Theme for Windows Forms

View: 3503    Dowload: 2   Comment: 0   Post by: naruto  
Author: none   Category: Form - Instructions   Fields: Other

0 point/9 review File has been tested

Download   mac-os-x-theme-for-windows.zip (2.56 MB)

You need to Sign In to download the file mac-os-x-theme-for-windows.zip
If you do not have an account then Sign up for free here

Download error   Report copyright violation

Some programmers might want to apply some themes or skins to their forms so that it will look cool, sophisticated, and attractive. I have created a Mac OS X open source theme library for everyone and the usage of it is indicated on this article.

Introduction

 

I'm a die-hard Apple Mac OS X fan. Unfortunately I can't buy a Mac so I want to have the look and feel of Mac OS X Applications on my Windows Forms Application. I created a library so I can use it on any of my WinForms. This idea of mine doesn't modify the non-client area of a form, but creates a new pre-designed mac themed borderless form and makes your target form as its child control. 

 

How it was created  

 

The theme was purely made up of a borderless form with lots of double-buffer enabled panels, each specially positioned to serve as the title bar, control buttons,resizing grips, and container of the form you want to apply the theme.  

 

 

This form includes several events such as resizing, moving, maximizing, minimizing, and closing. The target form (form where the theme is to be applied) was converted into a control and it will be owned by the Form Container (panel|bodypanel).

This mac themed form behaves normally the same way as a regular Windows border do. Here are some controls that make this custom theme similar to a regular Windows border.  

Titlebar 

-> This is where the form's text property is shown, via a centered label control. This part holds the caption and the control buttons (close, maximize/restore, and minimize buttons). You can move the window by dragging this part or maximize/restore the window by double-clicking.

Control Buttons 

-> Includes the close, maximize/restore, and minimize buttons. As a normal Windows border do, you can use these buttons to close the form, maximize, restore, and minimize the window.

Borders

-> These are the edges of the form where we can perform the resizing operations. 

Caption 

-> Displays the Form's Text property. 

Client Area

-> This is where the main graphical user interface of the application is found.

 

Controls that make up the Mac Theme

Here are the controls that are included in the mactheme Form class:

 

Control Name     Description   
mactheme  This is the main borderless form that holds all the controls below. 
bodypanel  This panel holds the form where you applied the theme. (form transformed into a low-level control and is owned by this control) 
bottompnl   The black 1px bottom border responsible for resizing. 
bottompnl2  bottompnl resizing grip extension. 
rightpnl  The black 1px right border responsible for resizing. 
rightpnl2  rightpnl resizing grip extension. 
leftpnl   The black 1px left border responsible for resizing. 
leftpnl2  leftpnl resizing grip extension. 
toppnl   The black 1px top border responsible for resizing. 
titleCaption  Shows the Text property of the form where your applied the theme. 
controlboxToolTip  Enables the control buttons to show their descriptions through a tooltip. 
cmdClose  Closes the form. 
cmdMaxRes   Maximizes/restores the form. 
cmdMin   Minimizes the form. 
swresize   Resizing grip for the bottom-right corner. 
nwresize  Resizing grip for the bottom-left corner. 
panelmod1  (I forgot to rename this, sorry)The title bar. 

 

 

 

 

Each of these controls have event handlers for them to function accordingly. Resizing and moving functions use unmanaged codes (SendMessage and ReleaseCapture). 

 

The  image below shows a demo form. (Right=normal Windows theme|FormBorderStyle: Sizable; TopLevel:True;)  and (Left= Mac theme|FormBorderStyle:none;TopLevel:False;ParentForm:mactheme) 

 

 

Using the code   

This library can generate three types of Mac themed form:

1. Thick Borders | Sizable (no top corners resize) 

2. Thick Borders; Resize disabled | Dialog Window 

3. Thin Borders | Sizable ( no corner resize) 

 Namespaces Included:   

 

using System; 
using System.Collections.Generic;
using System.Windows.Forms;
using System.Text;
using System.Drawing;
using System.IO;
using System.Runtime.InteropServices; 

 

Here are the following functions to apply the theme.  [Recommended to be written the Load event for the form] 

using xthemecore_macos; 

A] Select Form where you want to apply the theme. Create a Load event for the form. 

B] Create instance:

ThemeManager mgr = new ThemeManager(); 

 

C] Apply Theme  [only one can be applied for each form] 

1. Thick Borders | Resizable  

mgr.ApplyFormThemeSizable(name_of_form);

 

2. Thick Borders; Resize disabled | Dialog Window

mgr.ApplyFormThemeSingleSizable(name_of_form);

3. Thin Borders | Resizable (You can put null on the parentForm parameter if the dialog doesn't have any owner.

Remember: 

-> When assigning the owner of a form WITHIN a form that has this mac theme, do not type this, instead type this.ParentForm because your form becomes child control once you apply the mac theme. 

mgr.ApplyFormThemeDialog(name_of_form, name_of_owner); 

Some Code Snippets Included 

You can transform a form into a low level control by using these codes...

Form parentForm = new Form(); 
this.TopLevel = false; 
this.FormBorderStyle = FormBorderStyle.None; 
parentForm.Controls.Add(this); 
parentForm.Show();

 

 This library uses some Windows API for the moving and resizing operation.

internal const int WM_NCLBUTTONDOWN =161;
internal const int HT_CAPTION = 0x2;
internal const int HTBOTTOM = 15;
internal const int HTBOTTOMLEFT = 16;
internal const int HTBOTTOMRIGHT = 17;
internal const int HTRIGHT = 11;
internal const int HTLEFT = 10;
internal const int HTTOP = 12; 
[DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, uint Msg, long lParam, long wParam);
[DllImport("user32.dll")]
public static extern bool ReleaseCapture();  

 

 I have used panels that are double-buffered enabled to prevent flickers. 

 public class panelmod : Panel
        {
        public panelmod()
            {
            //sets the DoubleBuffered property of the panel to true.
            this.DoubleBuffered = true;
            }
        }  

Mac OS X Theme for Windows Forms

Mac OS X Theme for Windows Forms Posted on 09-05-2014  Some programmers might want to apply some themes or skins to their forms so that it will look cool, sophisticated, and attractive. I have created a Mac OS X open source theme library for everyone and the usage of it is indicated on this article. 5/10 3503

Comment:

To comment you must be logged in members.

Files with category

  • Form Management in MOSS 2007

    View: 2978    Download: 0   Comment: 0   Author: none  

    Form Management in MOSS 2007

    Category: Form - Instructions
    Fields: Other

    0/8 review
    The purpose of this document is to give an overview of Form Management in Microsoft Office SharePoint Server 2007. This article explains how to create and publish forms using Microsoft Office InfoPath 2007 in to SharePoint site.

  • Mac OS X Theme for Windows Forms

    View: 3503    Download: 2   Comment: 0   Author: none  

    Mac OS X Theme for Windows Forms

    Category: Form - Instructions
    Fields: Other

    0/9 review
    Some programmers might want to apply some themes or skins to their forms so that it will look cool, sophisticated, and attractive. I have created a Mac OS X open source theme library for everyone and the usage of it is indicated on this article.

  • Those Crazy Popups

    View: 1898    Download: 0   Comment: 0   Author: none  

    Those Crazy Popups

    Category: Form - Instructions
    Fields: Other

    0/1 review
    Ever tried to create a pop-up in ASP.NET? Well, in this article, we will see different ways to create them. We'll also see a few issues surrounding the different ways.

  • Handling .NET forms and their events in VB6 main application

    View: 3466    Download: 1   Comment: 0   Author: none  

    Handling .NET forms and their events in VB6 main application

    Category: Form - Instructions
    Fields: Other

    0/6 review
    I always wanted to post an article in CodeProject. I was always "taking" not "giving" anything back to this community and that made me feel guilty. I think its time to "give" back something useful to this community

  • Beginners’ Guide To Web Design

    View: 578    Download: 0   Comment: 0   Author: none  

    Beginners’ Guide To Web Design

    Category: Form - Instructions
    Fields: Other

    0/2 review
    If you’re a total newbie to the whole web designing business, you’ve come to the right place. Web design is a tricky thing to deal with, and with that being said there are many things that you have to keep in mind. Enumerated below are the things...

  • GraphicRiver.net – A Review

    View: 796    Download: 0   Comment: 0   Author: none  

    GraphicRiver.net – A Review

    Category: Form - Instructions
    Fields: none

    0/1 review
    Designers are always looking for resources to maximize their revenue. Whether it is a useful freelancing website, a blog or a marketplace, they never fail to entertain a designer’s desire to earn and learn, too. In this article I am going to review...

  • How to Establish a Dreamweaver Website on Localhost – EasyPhp

    View: 1123    Download: 0   Comment: 0   Author: none  

    How to Establish a Dreamweaver Website on Localhost – EasyPhp

    Category: Form - Instructions
    Fields: none

    0/4 review
    While developing a website, it is sometimes quite annoying and repetitive to edit the code in the editor and then test it on the browser, especially when working with WordPress. So, to ensure smooth workflow and faster development, we use a feature...

  • Top 15 Websites to learn Web Design and Development

    View: 850    Download: 0   Comment: 0   Author: none  

    Top 15 Websites to learn Web Design and Development

    Category: Form - Instructions
    Fields: none

    0/1 review
    People are, at all times looking to enhance their skills at Designing and Developing websites. Formal education in this field is quite rare so in this article, I’m going to share the 15 Top Websites to Learn Web Design and Development from, more...

 
Newsletter Email

File suggestion for you

File top downloads

logo codetitle
Codetitle.com - library source code to share, download the file to the community
Copyright © 2015. All rights reserved. codetitle.com Develope by Vinagon .Ltd