Skip to content

Commit bfe89e1

Browse files
committed
Initial migration from CodePlex
1 parent 711c36e commit bfe89e1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+3328
-1
lines changed

README.md

+37-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,38 @@
11
# c4f-multiwall
2-
MSDN - C4F - Multi-Monitor Wallpaper
2+
MSDN - C4F - Multi-Monitor Wallpaper\
3+
_Imported from [CodePlex](https://archive.codeplex.com/?p=multiwall) archive_
4+
5+
**Project Description**
6+
Do you wish that it was easier to have different wallpapers on each desktop? Multi-Monitor Wallpaper (MultiMon) lets you drag-and-drop a photo to a region on each desktop. Then it resizes it to show the whole image without stretching or cropping. (MSDN Coding 4 Fun)
7+
8+
## Introduction
9+
10+
Are you more productive with more monitors? Would you be even more productive with better wallpaper management? I thought so\! In this project, see how to create a utility to manage your Windows desktop wallpaper with separate images per screen. It's addicting\!
11+
12+
Everyone enjoys customizing his or her computer to the extent possible, and this almost always includes the desktop wallpaper. Windows manages wallpaper resizing pretty transparently, increasing or reducing the image display size, or tiling it as specified. Unfortunately, this isn't quite as smooth if you have more than one monitor. After some tinkering around with display settings and different bitmaps, I threw together a utility to resize images easily so you can customize what shows on each display. This has been tested up to Windows 7 RC1.
13+
14+
## Usage
15+
16+
Using MultiWall couldn't be easier. When you first launch it you get several things. On your primary desktop you'll get a preview window. Each monitor will be represented in this window, in their relative positions. This window serves no purpose except as a quick global preview, and an exercise in coding.
17+
18+
![MultiWall-Preview.png](docs/images/9a0b14d7-13fb-471d-bc7f-6b0f6ae77d05.png
19+
"MultiWall-Preview.png")
20+
21+
At the top-center of each monitor, you'll have a small drop-zone.
22+
23+
![MultiWall-DropZone.png](docs/images/8b97593c-2cf6-4919-9381-ad72d981d52e.png
24+
"MultiWall-DropZone.png")
25+
26+
Just drop an image file onto this zone to replace the image on that monitor. After doing so, the main preview window will update accordingly
27+
28+
Use the context-menu settings to disable either the drop-zone or preview windows. That's it\!
29+
30+
If the desktop configuration changes *while* MultiWall is running, it will resize images accordingly. If not, they will look very bad\! This is due to how you must place the images for them to layout on the screens properly. Read the [article](https://channel9.msdn.com/coding4fun/articles/MultiWall-Wallpaper-Tool-for-Multiple-Monitors) for more info. Let me know if you would like commit permissions.
31+
32+
![MultiWall.png](docs/images/a532f145-06a3-4328-9f48-c25c7d08a3e3.png "MultiWall.png")
33+
34+
## Known Limitations
35+
36+
This is not a perfect project by far. It was written as sample code, so could use some work. For one thing, the preview window is blank if you restart the app. For that matter, the preview window should really work as a drag-and-drop area too, or it could just be removed. Just not much point. It might also be nice to have settings for zoom-to-fill vs. zoom-to-fit.
37+
38+
Note: This code was originally published as part of an MSDN Coding 4 fun [article](https://channel9.msdn.com/coding4fun/articles/MultiWall-Wallpaper-Tool-for-Multiple-Monitors).
Loading
Loading
Loading

src/MultiWall_cs/MultiWall.sln

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 9.00
3+
# Visual C# Express 2005
4+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MultiWall", "MultiWall\MultiWall.csproj", "{E8427E7C-2395-48FD-8989-2ADB063E272A}"
5+
EndProject
6+
Global
7+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
8+
Debug|Any CPU = Debug|Any CPU
9+
Release|Any CPU = Release|Any CPU
10+
EndGlobalSection
11+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
12+
{E8427E7C-2395-48FD-8989-2ADB063E272A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
13+
{E8427E7C-2395-48FD-8989-2ADB063E272A}.Debug|Any CPU.Build.0 = Debug|Any CPU
14+
{E8427E7C-2395-48FD-8989-2ADB063E272A}.Release|Any CPU.ActiveCfg = Release|Any CPU
15+
{E8427E7C-2395-48FD-8989-2ADB063E272A}.Release|Any CPU.Build.0 = Release|Any CPU
16+
EndGlobalSection
17+
GlobalSection(SolutionProperties) = preSolution
18+
HideSolutionNode = FALSE
19+
EndGlobalSection
20+
EndGlobal
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Text;
4+
using System.Drawing;
5+
6+
namespace MultiWall
7+
{
8+
class BoundsUtilities
9+
{
10+
public static Rectangle AddBounds(Rectangle sourceBounds, Rectangle newBounds)
11+
{
12+
if (newBounds.Right > sourceBounds.Right)
13+
sourceBounds.Width += (newBounds.Right - sourceBounds.Width);
14+
15+
if (newBounds.Bottom > sourceBounds.Bottom)
16+
sourceBounds.Height += (newBounds.Bottom - sourceBounds.Height);
17+
18+
if (newBounds.Left < sourceBounds.Left)
19+
{
20+
sourceBounds.X = newBounds.X;
21+
}
22+
23+
if (newBounds.Top < sourceBounds.Top)
24+
{
25+
sourceBounds.Y = newBounds.Y;
26+
}
27+
28+
return sourceBounds;
29+
}
30+
}
31+
}

src/MultiWall_cs/MultiWall/MainForm.Designer.cs

+140
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)