diff --git a/source/css/rainmeter.css b/source/css/rainmeter.css index 96b788aec..f1b9ed4ff 100644 --- a/source/css/rainmeter.css +++ b/source/css/rainmeter.css @@ -883,6 +883,15 @@ table#quickjump td { -webkit-animation-delay: 12s; animation-delay: 12s; } +.floatingIcons li:nth-child(11) { + left: 70%; + width: 14rem; + height: 14rem; + -webkit-animation: animation2 22s infinite; + animation: animation2 22s infinite; + -webkit-animation-delay: 10s; + animation-delay: 10s; +} @-webkit-keyframes animation1 { 0% { -webkit-transform: translateY(0); @@ -972,4 +981,4 @@ table#quickjump td { transform: translateY(-1080px) rotate(-85deg); opacity: 0; } -} +} \ No newline at end of file diff --git a/source/developers/index.html b/source/developers/index.html index 38d101ecf..a755545f6 100644 --- a/source/developers/index.html +++ b/source/developers/index.html @@ -69,6 +69,10 @@

Creating Rainmeter Plugins

An example plugin demonstrating how to do "parent-child" functions in your plugin.
  • PluginSectionVariables
    An example plugin demonstrating how to implement functions to use as section variables in your plugin.
  • +
  • PluginRmExecute
    +An example plugin demonstrating how to make an option be read and execute the bang within.
  • +
  • PluginDataHandling
    +An example plugin demonstrating how to keep data across functions calls and also storing data in the Rainmeter.data file for presistant access across skin reloads and even measures.
  • To create a plugin, the simplest approach is to make a copy of and rename the PluginEmpty example folder and files. Use GuidGen.exe from Visual Studio with Format 4 to generate a new GUID and add this and other appropriate changes to the .vcxproj or .csproj files. Open either SDK-CPP.sln (C++) or SDK-CS.sln (C#) in Visual Studio, add your new plugin project to the solution, develop your code in this template and build your plugin. Be sure that you use the Solution Configuration and Solution Platforms fields and build both x32 and x64 architecture release versions of your plugin .dll before you distribute it.

    diff --git a/source/developers/plugins/guidelines.html b/source/developers/plugins/guidelines.html index 3ae9cb1e7..a2bce6d72 100644 --- a/source/developers/plugins/guidelines.html +++ b/source/developers/plugins/guidelines.html @@ -58,3 +58,8 @@

    C# Marshalling

    When making C# plugins you may notice references to IntPtr's and Marshal functions. Since Rainmeter is written in C++, variables are encoded differently, but don't be intimidated by them.

    An IntPtr is basically an integer that represents a pointer to some data, which is why you must deallocate data in finalize as well as recast it in every function. Also since strings are formatted differently in C++, you should pass your string to Marshal.StringToHGlobalUni before returning it in GetString or custom section variables.

    Also the MarshalAs in ExecuteBang and SectionVariable examples just makes sure that you get a C# style string or string array out of the box.

    + +

    What do the Disabled and Paused options do in a plugin?

    +

    If either are set to 1, they only affects the execution of the Update function. Rainmeter will still call the Initialize, Reload and Finalize functions.

    +

    Ideally, plugins should do the bulk of the "work" in the Update function to minimize any processing and to take advantage of what the user expects when the options (and bangs for set options) are used.

    +

    Avoid relying on the Update function to control threads if multi-threading.

    \ No newline at end of file diff --git a/source/developers/plugins/plugin-anatomy.html b/source/developers/plugins/plugin-anatomy.html index 8490110c1..320533a21 100644 --- a/source/developers/plugins/plugin-anatomy.html +++ b/source/developers/plugins/plugin-anatomy.html @@ -10,7 +10,7 @@

    Exported functions

    Initialize

    Called before anything on measures first load.
    - Initialize your object you want to store in the data pointer here, as well as any other setup your plugin will need to do. You should also store the measure refernce here if you are going to make use of it outside Initialize or Reload. + Initialize your object you want to store in the data pointer here, as well as any other setup your plugin will need to do. You should also store the measure reference here if you are going to make use of it outside Initialize or Reload.

    Reload

    @@ -20,7 +20,8 @@

    Reload

    Update

    Called on every update cycle of the measure.
    - Return the value you want to use as the number value of the measure here. You should do anything that requires being run regularly here + Return the value you want to use as the number value of the measure here. You should do anything that requires being run regularly here.
    + This is the only function affected by the Disabled and Paused options.

    Finalize

    @@ -29,7 +30,7 @@

    Finalize

    GetString (Optional)

    - Called as the string value of the measure is used in any meters or measures.
    + Called as the string value of the measure is used in any meters (e.g. MeasureName) or measures, and "on-demand" in the User Interface.
    Return the value you want to use as the string value of the measure here. You should do absolutely no processing here as it is possible to have this called multiple times an update. Instead calculate any values in update and just return them here.

    @@ -37,6 +38,10 @@

    ExecuteBang (Optional)

    Called whenever a !CommandMeasure bang is used.
    Incredibly useful for interacting with your plugin. Media playback plugins are a good example of using this, so then a skin could have a button to pause the music on command.

    +

    +

    IntPtr (Optional)

    + Bridge between managed and unmanaged code, allowing retrieval of a string from a managed object and making it accessible as a null-terminated Unicode string in the unmanaged environment. +

    SectionVariables (Optional)

    Called whenever a section variables is used ex. [pluginMeasure:func(arg1, arg2)].
    diff --git a/source/manual/getting-started/index.html b/source/manual/getting-started/index.html index 326d98e1d..ab81c71fd 100644 --- a/source/manual/getting-started/index.html +++ b/source/manual/getting-started/index.html @@ -25,7 +25,7 @@

    What is a "skin"?

    Skins can interact with other skins and applications using special commands, called bangs, and they can be customized by changing short lines of text, called variables. All of these things are made possible by Rainmeter's unique code language, which allows a skin to access functions and resources built into the Rainmeter application. Every skin's code is completely open, and can be tweaked, modified or even completely rewritten using any text editing software.

    -

    How much technical skill do I need to use Rainmeter?

    +

    How much technical skill do I need to use Rainmeter?

    If you only want to download skins from the Internet and use them as-is, then the answer is "none." Rainmeter provides a basic user interface for managing your library of skins, saving and restoring layouts, and changing basic settings such as a skin's location, transparency, and "always on top" behavior.

    @@ -60,6 +60,7 @@

    What isn't Rainmeter?

    In short, you cannot usually download and apply someone else's amazing desktop transformation in one click. Most customizers are courteous enough to provide links to the myriad programs, plugins, icons, wallpapers and other materials that they have used.

    -
    +
    +

    Navigate through the Getting Started guide using the buttons here.

    Continue to: Setting Up »
    diff --git a/source/manual/measures/nowplaying.html b/source/manual/measures/nowplaying.html index 08deb6a16..4a1958172 100644 --- a/source/manual/measures/nowplaying.html +++ b/source/manual/measures/nowplaying.html @@ -141,9 +141,10 @@

    Partially supported players

    The following players are partially supported. Only some features will work.

    diff --git a/source/manual/meters/general-options/image-options.html b/source/manual/meters/general-options/image-options.html index d0072bc3b..494824d40 100644 --- a/source/manual/meters/general-options/image-options.html +++ b/source/manual/meters/general-options/image-options.html @@ -5,7 +5,7 @@ ---

    Options available for use with all images. These options are to modify the display of an image file, and do not work with square/rectangle Image meters created entirely with SolidColor / SolidColor2, or with any shape created by a Shape meter.

    -

    Note:Supported image formats are .png, .jpg, .bmp, .gif (no animation supported), .tif, .webP and .ico. If no file extension is included, .png is assumed.

    +

    Note: Supported image formats are .png, .jpg, .bmp, .gif (no animation supported), .tif, .webP and .ico. If no file extension is included, .png is assumed.

    Options

    diff --git a/source/manual/meters/image.html b/source/manual/meters/image.html index 3960812e0..8ff01f97b 100644 --- a/source/manual/meters/image.html +++ b/source/manual/meters/image.html @@ -5,7 +5,7 @@ ---

    Meter=Image displays either an image defined by a measure value, or any named image. If W and/or H are included in the meter options, the image will be scaled to fit the meter size.

    -

    Note:Supported image formats are .png, .jpg, .bmp, .gif (no animation supported), .tif, .webP and .ico. If no file extension is included, .png is assumed.

    +

    Note: Supported image formats are .png, .jpg, .bmp, .gif (no animation supported), .tif, .webP and .ico. If no file extension is included, .png is assumed.

    Options

    diff --git a/source/manual/meters/shape/index.html b/source/manual/meters/shape/index.html index 6a9fdf46b..5a599c045 100644 --- a/source/manual/meters/shape/index.html +++ b/source/manual/meters/shape/index.html @@ -5,8 +5,9 @@ ---

    Meter=Shape is used to create one or more vector graphic shapes.

    -
    - +
    + +

    An example skin demonstrating different shape types made using the Shape meter.

    Quick Jump

    @@ -747,5 +748,5 @@

    Examples

    -

    An example skin demonstrating the Shape meter.

    +

    An example skin demonstrating various ways to manipulate the Rectangle shape type.