Skip to content

Instantly share code, notes, and snippets.

View qwertie's full-sized avatar

David Piepgrass qwertie

View GitHub Profile
@qwertie
qwertie / DateTimePicker.xaml
Last active June 5, 2023 18:31
C# DateTimePicker for WPF
<UserControl x:Class="DTPicker.DateTimePicker"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:DTPicker"
xmlns:wpftc="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit"
mc:Ignorable="d"><!--Uses Calendar in WPFToolkit.dll,
see http://wpf.codeplex.com/releases/view/40535-->
<UserControl.Resources>
@qwertie
qwertie / ValueConverters.cs
Created January 20, 2012 18:21
ValueConverter + MarkupExtension in one
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Markup;
using System.Globalization;
using System.Windows.Data;
using System.Diagnostics;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
@qwertie
qwertie / dep.snippet
Created January 20, 2012 20:02
C# code snippets for using UpdateControls
<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>dep</Title>
<Shortcut>dep</Shortcut>
<Description>Code snippet to help you make properties based on 'Dependent&lt;T&gt;', an Update Controls class that represents a value computed based on one or more Independents. Note: in most cases you should just write a normal property instead of using Dependent&lt;T&gt;. Dependent&lt;T&gt; is useful to cache the result of a computation when the value of the property is expensive to compute.</Description>
<Author>David Piepgrass</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
@qwertie
qwertie / Clipper.cs
Created February 15, 2012 23:05
Refactored Clipper library (Vatti polygon intersection/union/difference)
/*******************************************************************************
* *
* Author : Angus Johnson *
* Edited by : David Piepgrass *
* Version : 4.7 + edits *
* Date : 15 February 2012 *
* Website : http://www.angusj.com *
* Copyright : Angus Johnson 2010-2012 *
* *
* Note: I, David Piepgrass, refactored this library from its original version *
@qwertie
qwertie / WeakValueDictionary.cs
Created October 10, 2012 17:21
C# Dictionary with weak values
using System;
#if !CompactFramework
using System.Runtime.Serialization;
#endif
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
namespace Mentor.Utilities
{
@qwertie
qwertie / SimpleTimer.cs
Created September 25, 2013 21:36
A fast, simple alternative to System.Diagnostics.Stopwatch based on Environment.TickCount. Its resolution is typically 10-16 ms.
using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
namespace Loyc
{
/// <summary>
/// A fast, simple timer class with a more convenient interface than
/// System.Diagnostics.Stopwatch. Its resolution is typically 10-16 ms.
@qwertie
qwertie / InternalList.cs
Last active June 28, 2021 03:05
InternalList<T>, the low-level List<T> (standalone version: does not require Loyc.Essentials.dll, is compatible with .NET 3.5)
// from Loyc.Essentials.dll. Licence: MIT
namespace Loyc.Collections.Impl
{
using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using System.Linq;
/// <summary>A compact auto-enlarging array structure that is intended to be
@qwertie
qwertie / UndoStack.cs
Last active November 8, 2016 07:36
UndoStack.cs
/* I wrote an application-agnostic UndoStack class for my own diagramming tool. It's easy to use, for example here's how you might write code to delete a shape:
UndoStack _undoStack = new UndoStack();
...
void DeleteShape(GraphicElement el)
{
_undoStack.Do(@do => {
if (@do) {
// Code to delete the shape
} else {
@qwertie
qwertie / StringBuilderExt.cs
Created November 10, 2016 02:10
StringBuilderExt.cs extension methods for StringBuilder
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Loyc
{
/// <summary>Extension methods that add some functionality of <c>string</c> to <c>StringBuilder</c>.</summary>
public static class StringBuilderExt
{
@qwertie
qwertie / app.tsx
Last active June 30, 2018 05:34
Minimal React+TypeScript example
import * as React from 'react';
import * as ReactDOM from 'react-dom';
class App extends React.Component<{greeting: string}, {count:number}> {
state = {count: 0};
render() {
return (
<div>
<h2>{this.props.greeting}</h2>
<button onClick={() => this.setState(